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

Java 如何使用不同的用户凭据在Selenium中运行并行测试?,java,selenium-webdriver,automated-tests,testng,Java,Selenium Webdriver,Automated Tests,Testng,我正在尝试为我的自动化测试用例并行运行测试,但我需要使用不同的用户凭据来执行它们 因此,我想让在任何时间点执行的每个线程都不应该以同一用户的身份打开应用程序。我的应用程序是这样的,用户的视图将被保留,如果同一用户以不同线程执行不同操作的方式访问应用程序,那么将导致测试用例失败 因此,我需要知道是否有办法使用testng xml并行运行测试用例,但是这些并行执行的测试用例应该使用存储在框架中某处的不同登录凭据 我该怎么做??请用必要的方法帮助我创建具有用户名、密码和测试id等值的文档,并为每个测试

我正在尝试为我的自动化测试用例并行运行测试,但我需要使用不同的用户凭据来执行它们

因此,我想让在任何时间点执行的每个线程都不应该以同一用户的身份打开应用程序。我的应用程序是这样的,用户的视图将被保留,如果同一用户以不同线程执行不同操作的方式访问应用程序,那么将导致测试用例失败

因此,我需要知道是否有办法使用testng xml并行运行测试用例,但是这些并行执行的测试用例应该使用存储在框架中某处的不同登录凭据


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

创建具有用户名、密码和测试id等值的文档,并为每个测试分配自己的凭据。在基于测试id从文档凭据读取的测试中


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

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

在自动测试用例中,您可以通过从csv文件中读取用户名和密码数据,通过不同的用户登录来运行测试。

或者,您可以与Cucumber集成,在功能文件中,您可以提供不同的凭据。

您可以尝试这种方法。

  • 在任何数据库服务器(MySQl或Oracle)中创建一个数据库表USERS\u ACCOUNTS
  • 存储与用户相关的信息
  • 将当前使用的列添加到用户帐户表中,该表存储用户当前是否登录
  • 现在,在测试脚本的登录方法中,不要从csv或config获取用户
  • 相反,从USERS\u ACCOUNTS表中获取用户,其中当前使用的值为false
  • 然后将IS_current_USED列更新为true,以便您的其他测试不会登录到用户
  • 确保将上述两个步骤作为一个事务执行,以避免测试获得相同的用户
  • 如果您愿意,我可以共享代码。

    请参阅:SO的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要共享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: