【问题标题】:How to run a Robot Framework test with 2 different users in 2 different browser windows simultaneously?如何同时在 2 个不同的浏览器窗口中与 2 个不同的用户一起运行 Robot Framework 测试?
【发布时间】:2015-02-10 09:04:15
【问题描述】:

在我们的一些 Plone 插件中,我有一个机器人框架测试来验证 plone.app.lockingbehavior 提供的功能

测试打开 2 个浏览器窗口(一个使用 localhost,另一个使用 127.0.0.1)并在 Plone 站点上记录 2 个不同的用户,以验证是否存在当一个用户正在编辑内容类型时,它会被阻止。

例如,这在 collective.cover 上一直有效,直到几个月前更新了堆栈的某些版本的更改 (circa 20 Aug)。

我注意到当我切换回第一个浏览器窗口时,用户也会切换到第二个浏览器窗口上的那个;这在正常操作中不应该发生,但似乎测试中的 cookie 被错误地共享了。

以下是一些截图:

浏览器窗口 1:用户 Ownerlocalhost 上编辑一些内容:

切换到浏览器窗口 2:用户 站点管理员 试图在 127.0.0.1 上编辑相同的内容:

切换到浏览器窗口 1:用户 Ownerlocalhost 上成为用户 Site Administrator

如何同时在 2 个不同的浏览器窗口中对 2 个不同的用户运行 Robot Framework 测试?

【问题讨论】:

  • 如果它正在工作但随后停止,您应该调查您的依赖关系并在那里报告(可能从 p.a.robotframework 开始)

标签: firefox selenium selenium-webdriver plone robotframework


【解决方案1】:

只要浏览器不同 - 即不是两个 Firefox 实例 - 这应该可以在单个盒子上的单个测试中完成。

您可以通过将凭据添加到站点 URL 来使用户不同(这适用于 Chrome 和 FF,但会被 IE 阻止)

代码在 C# 中,但应该可以在 Python for Robot Framework 中使用

// Create IWebdriver instance for user 1
IWebDriver user1InFF = new FirefoxDriver();
user1inFF.Navigate().GoToURL("http://user1:user1Password@localhost");

// Create IWebDriver instance for user 2
IWebDriver user2InChrome = new ChromeDriver();
user2inChrome.Navigate().GoToURL("http://user2:user2Password@127.0.0.1");

// Use both instances in the test

user1InFF.DoSomething();

user2InChrome.CheckSomething();

etc...

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2013-08-23
    • 2020-10-21
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多