0

我想使用 selenium 来测试两个或多个应用程序(主要、监控、管理)如何协同工作。但是,我所能找到的只是如何测试单个应用程序。

示例场景可能如下所示:

App 1 - user x tries to log in, but has no account and the login fails
App 2 - a user for App 1 is created
App 1 - user is now able to log in

App 1 - user x performs a task
App 2 - displays the performed task
App 1 - user x finishes a task
App 2 - displays the finished task

应用程序可以部署在不同的服务器上。通信是通过一个公共数据库执行的。这些应用程序不一定使用相同的技术堆栈来实现。

4

3 回答 3

3

Selenium 旨在复制真实的用户行为。因此,如果会话确实在离开 APP 1 时终止,而真正的用户会这样做,那么在通过 selenium webdriver 运行这些步骤时会看到完全相同的行为。

如果你还想做i,可以这样做——

@driver1 = Selenium::WebDriver.for(:remote, :url => @sel_grid_url, :desired_capabilities => @browser) #create a browser session controlled by driver1
@driver2 = Selenium::WebDriver.for(:remote, :url => @sel_grid_url, :desired_capabilities => @browser) #create another browser session controlled by driver2
@driver1.get "http://#{app1}/"
## user x tries to log in, but has no account and the login fails
@driver2.get "http://#{app2}"
## a user for App 1 is created
.
.
.

上面的代码是用 Ruby 编写的,中间是用 Selenium Grid 2 实现的。

于 2013-03-25T15:32:31.630 回答
1

Selenium IDE 不允许您在同一测试期间更改网站。但是您可以使用 Selenium Webdriver 轻松做到这一点。例如

driver.get("yourFirstApp.com");
//Test your stuff
driver.get("yourSecondApp.com");
//Test your stuff
etc
于 2013-03-25T14:38:12.767 回答
0

如果您像下面的代码一样留在同一个测试用例中,您将不会遇到对话 ID、会话等问题。

@Test
public void blablalb() {  
driver.get(a1);  
//code.... 
driver.get(a2);  
//code...
}
于 2013-03-28T14:50:01.260 回答