Javascript 使用webdriverio的maxInstances时如何处理登录用户
现在,我尝试为我们的产品自动化测试更新webdriverio的maxInstances,但是我找不到一个好方法让不同的测试实例使用不同的用户来运行测试。有时不同的实例将使用同一用户登录,这将导致第一个登录实例会话超时Javascript 使用webdriverio的maxInstances时如何处理登录用户,javascript,webdriver-io,Javascript,Webdriver Io,现在,我尝试为我们的产品自动化测试更新webdriverio的maxInstances,但是我找不到一个好方法让不同的测试实例使用不同的用户来运行测试。有时不同的实例将使用同一用户登录,这将导致第一个登录实例会话超时 有人知道如何在这种情况下锁定/解锁用户吗?让我直截了当地说:您正在尝试运行多个实例,并且为生成的每个工作进程使用不同的参数,对吗?(例如:在您的情况下,对正在运行的流使用不同的、无冲突的用户帐户)。你是不是看起来像是自杀了 理论上,每个测试用例都应该具有以下三个特征: 小的 原
有人知道如何在这种情况下锁定/解锁用户吗?让我直截了当地说:您正在尝试运行多个实例,并且为生成的每个工作进程使用不同的参数,对吗?(例如:在您的情况下,对正在运行的流使用不同的、无冲突的用户帐户)。你是不是看起来像是自杀了
理论上,每个测试用例都应该具有以下三个特征:
- 小的
- 原子的
- 自主的
❒ 可能的解决方案:
- 在功能文件(测试套件)中具有与特定检查(测试用例)关联的特定测试帐户
- 如果你想非常认真地对待你的检查是否是原子的,那么就为一个特定的测试套件创建每个用户帐户(因为一个测试套件只在一个实例上运行,每次回归运行)
- 组织测试套件,使特定的运行只使用特定的用户帐户,并使您的运行特定:将
开关添加到您的命令-suite
自定义_命令
,以实现相同的效果。您在每个挂钩之前/之前调用您的
!注意:不要忘记在每次after/afterEach
钩子中进行清理
缺点:
- 与小原则相矛盾
- 您将无法在生产环境中运行它们
- 您可能会被后端标记为不断有新用户污染DBs(特别是如果您每天运行3-5次完整回归)
您肯定可以找到一个解决方案来弥补这个框架的局限性。要有创意。一切顺利。干杯 嗨,本杰明,你能提供一些关于你的问题的更多信息吗。您想在单个会话中使用不同的用户登录(可能是通过清除打开的浏览器缓存和cookie)?也许你可以试着解释一下当你手动尝试的时候你会做些什么。听起来更像是你在组织测试用例逻辑、钩子或者一些并发性问题上遇到了问题。就像上面@NaveenThiyagarajan建议的那样,编辑您的问题并添加相关的代码段。现在我只需在运行套件之前锁定/解锁用户。请参阅此处了解更多详细信息:
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'
],
}