在我们的一些Plone插件中,我有一个Robot Framework测试来验证plone.app.lockingbehavior提供的功能
测试打开2个浏览器窗口(一个使用 localhost ,另一个使用 127.0.0.1 )并在Plone站点上记录2个不同的用户以验证是否有实例当一个用户正在编辑内容类型时,将阻止该内容类型。
例如,直到几个月前更新了某些版本的堆栈更改(collective.cover)时才开始使用circa 20 Aug。
我注意到当我切换回第一个浏览器窗口时,用户也切换到第二个浏览器窗口上的那个;这不应该在正常操作中发生,但似乎错误地共享了测试中的cookie。
以下是一些截图:
浏览器窗口1:用户所有者编辑 localhost 上的部分内容:
切换到浏览器窗口2:用户网站管理员尝试编辑 127.0.0.1 上的同一段内容:
切换到浏览器窗口1:用户所有者在 localhost 上成为用户站点管理员:
如何在2个不同的浏览器窗口中同时运行2个不同用户的Robot Framework测试?
答案 0 :(得分:1)
只要浏览器不同 - 即不是两个Firefox实例 - 这应该可以在单个盒子上进行单个测试。
您可以通过将凭据添加到网站网址来使用户与众不同(这适用于Chrome和FF,但会被IE阻止)
代码在C#中,但在python中对于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...