如何使用不同的用户凭据在Selenium中运行并行测试?

时间:2018-08-15 12:38:37

标签: java selenium-webdriver automated-tests testng

我正在尝试针对自动化测试用例在Parallel中运行测试,但是我需要使用不同的用户凭据来执行它们。

所以我想让它好像在任何时间执行的每个线程都不应该以同一用户身份打开应用程序。在我的应用程序中,将保留用户的视图,并且如果同一用户以不同线程执行不同操作的方式访问该应用程序,则会导致测试用例失败。

因此,我需要知道是否可以使用testng xml并行运行测试用例,但是这些并行执行的测试用例应使用存储在框架中某个位置的不同登录凭据。

我该怎么做?请以必要的方法帮助我

4 个答案:

答案 0 :(得分:0)

使用用户名,密码和测试ID等值创建文档,并为每个测试分配自己的凭据。在测试中,根据测试ID从文档凭据中读取。

当然,您可以在每次执行之前分配用户。

答案 1 :(得分:0)

在自动测试用例中,您可以通过从csv文件读取用户名和密码数据来通过不同的用户登录名运行测试。
或者,您可以与Cucumber集成,在功能文件本身中可以提供不同的凭据。

答案 2 :(得分:0)

您可以尝试这种方法。

  1. 在任何数据库服务器(MySQl或Oracle)中创建数据库表USERS_ACCOUNTS。
  2. 存储您的用户相关信息。
  3. 在您的USERS_ACCOUNTS表中添加一列IS_CURRENTLY_USED,用于存储用户当前是否登录。
  4. 现在,在测试脚本的登录方法中,无法从csv或config中获取用户。
  5. 相反,从IS_CURRENTLY_USED值为false的USERS_ACCOUNTS表中获取用户。
  6. 然后将IS_CURRENTLY_USED列更新为true,以使其他测试不会登录到用户。
  7. 请确保您将上述两个步骤作为一项事务进行,以免测试获得同一用户。

如果需要,我可以共享代码。

答案 3 :(得分:-1)

实例化WebDriver时,它将绑定到Web浏览器中的唯一会话,这就是为什么当您要使用相同的WebDriver进行并行测试时,首先,它将与第一个用户,然后会话将记住您的凭据,您将无法与其他用户进行测试。 我认为您需要为每个用户实例化一个WebDriver,以便您可以进行并行测试。