将maxInstances用于webdriverio时如何处理登录用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将maxInstances用于webdriverio时如何处理登录用户相关的知识,希望对你有一定的参考价值。

现在,我尝试为我们的产品自动化测试更新webdriverio的maxInstances> 1,但是我找不到让不同的测试实例使用不同的用户运行测试的好方法。有时,不同的实例将使用同一用户登录,这将导致第一个登录实例会话超时。

任何人都知道在这种情况下如何锁定/解锁用户?

答案

让我明白这一点:您正在尝试运行多个实例,并且为每个生成的工作人员使用不同的参数,对吗? (例如:在您的情况下,请为运行的流使用不同的,无冲突的用户帐户)。好像不是您zugzwang对自己进行过吗?


理论上,每个测试用例都应具有以下三个特征:

  • 原子
  • 自治

❒可能的解决方案:

  1. 等待wdio-shared-store-service待审核>批准>合并>已发布

这可能需要一个星期,也可能需要一个月或几个月。甚至可能根本没有发布一项功能,因为人们对跨支票共享数据存在很多担忧(人们最终会这样做]。

当前,框架内没有打包的其他功能,可以使您获得相同的结果。如果可以的话,也许可以尝试通过改变测试方法来寻找解决方案。


  1. 重新组织测试逻辑:

    • 在功能文件(测试套件)中具有与特定检查(测试用例)相关的特定测试帐户
    • 如果您要非常认真地对待检查[[atomic,那么请为特定的测试套件创建每个用户帐户(因为每个回归运行,测试套件只能在一个实例上运行 )
    • 组织测试套件,使得仅特定的用户帐户将用于特定的运行,并使您的运行具有特定性:将-suite开关添加到命令中

  • suites: user: [ './test/features/user/AnalyticsChecks.js', './test/features/user/SitemapChecks.js' ], superuser: [ './test/features/superuser/HeaderChecks.js', './test/features/superuser/FooterChecks.js' ], admin: [ './test/features/admin/DropUserRoles.js', './test/features/admin/ClearCache.js' ], batman: [ './i/am/the/Darkness.js' ],

      动态创建您的用户(
    1. 预测试,或在测试运行中]
    如果您很幸运并且可以访问一些后端调用,以将具有特定配置的用户推送到数据库(

    向您的后端开发人员寻求支持,请给他们糖果!

    ,然后创建脚本产生此类用户,或者,您可以创建一个达到相同目的的custom_command。您调用before/beforeEach挂钩。

    !注:不要忘了在after/afterEach钩子之后进行清理。

    缺点:

    • small
    原则矛盾
  • 您将无法针对PRODUCTION运行它们
  • 您可能会被后端标记为不断用新用户污染数据库(
  • 尤其是如果您每天运行3-5次完全回归]]
  • 您当然可以找到解决此框架限制的解决方案。要有创造力。一切顺利。干杯!

    以上是关于将maxInstances用于webdriverio时如何处理登录用户的主要内容,如果未能解决你的问题,请参考以下文章

    什么是正确的docker-compose yml来设置selenium hub node-chrome的maxSessions和maxInstances

    使用 JAXB 提取 XML 元素的内部文本

    量角器将数据驱动测试分成不同的规格

    关于lampp中的proftpd的一些使用

    无法通过 Selenium Hub 获取 Chrome

    如何在自动扩缩 GCP Dataproc 时了解初级工作者?