将maxInstances用于webdriverio时如何处理登录用户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将maxInstances用于webdriverio时如何处理登录用户相关的知识,希望对你有一定的参考价值。
现在,我尝试为我们的产品自动化测试更新webdriverio的maxInstances> 1,但是我找不到让不同的测试实例使用不同的用户运行测试的好方法。有时,不同的实例将使用同一用户登录,这将导致第一个登录实例会话超时。
任何人都知道在这种情况下如何锁定/解锁用户?
答案
让我明白这一点:您正在尝试运行多个实例,并且为每个生成的工作人员使用不同的参数,对吗? (例如:在您的情况下,请为运行的流使用不同的,无冲突的用户帐户)。好像不是您zugzwang对自己进行过吗?
理论上,每个测试用例都应具有以下三个特征:
- 小
- 原子
- 自治
❒可能的解决方案:
- 等待wdio-shared-store-service待审核>批准>合并>已发布
这可能需要一个星期,也可能需要一个月或几个月。甚至可能根本没有发布一项功能,因为人们对跨支票共享数据存在很多担忧(人们最终会这样做]。
当前,框架内没有打包的其他功能,可以使您获得相同的结果。如果可以的话,也许可以尝试通过改变测试方法来寻找解决方案。
重新组织测试逻辑:
- 在功能文件(测试套件)中具有与特定检查(测试用例)相关的特定测试帐户
- 如果您要非常认真地对待检查[[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'
],
动态创建您的用户(
如果您很幸运并且可以访问一些后端调用,以将具有特定配置的用户推送到数据库(- 预测试,或在测试运行中]
向您的后端开发人员寻求支持,请给他们糖果!
,然后创建脚本产生此类用户,或者,您可以创建一个达到相同目的的custom_command
。您调用before/beforeEach
挂钩。!注:不要忘了在
after/afterEach
钩子之后进行清理。缺点:
与
原则矛盾- small
以上是关于将maxInstances用于webdriverio时如何处理登录用户的主要内容,如果未能解决你的问题,请参考以下文章
什么是正确的docker-compose yml来设置selenium hub node-chrome的maxSessions和maxInstances