代码之家  ›  专栏  ›  技术社区  ›  Lafa

我可以在并行单元中运行Nightwatch js,每个worker使用不同的环境吗?

  •  0
  • Lafa  · 技术社区  · 4 年前

    我目前正在使用Nightwatch js在paracell中运行我的E2E测试。

    我遇到的问题是,我的测试共享同一个数据库,这给我带来了跨不同测试/工作者重写共享数据的问题,导致测试不稳定。 我考虑过用自己的数据库运行每个测试工作器,但我不确定如何在实践中做到这一点。我的出发点是为测试数据库设置不同的设置,每个设置都在一个夜间监视环境中,每个工作人员都可以访问该环境,但到目前为止,我还没有发现这是否可行。

    有什么想法吗?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Alapan Das    4 年前

    是的,你可以在不同的员工身上运行不同的测试,Nightwatch提供了一种方法。我做了一些非常相似的事情,在三个不同的浏览器上并行运行了相同的测试。

    您必须添加 test_Worker 配置,允许并行运行测试。启用此选项后,测试运行器将启动可配置数量的子进程,然后将加载的测试分配到并行运行。

    workers选项配置可以同时运行多少个子进程。 a) 由CPU数量自动确定,例如4个CPU意味着4个工人 b) {number}指定工人的确切数量

    test_workers: {
                enabled: true,
                workers: 'auto'
            }
    

    这就是我的 Nightwatch.conf.js 文件看起来像:

    {
    module.exports = {
        src_folders: ["tests"],
        test_settings: {
            default: {
                desiredCapabilities: {
                    browserName: 'chrome'
                },
                webdriver: {
                    start_process: true,
                    port: 4444,
                    server_path: require('chromedriver').path,
                }
            },
    
            test_workers: {
                enabled: true,
                workers: 'auto'
            },
    
            safari: {
                desiredCapabilities: {
                    browserName: 'safari',
                    alwaysMatch: {
                        acceptInsecureCerts: false
                    }
                },
                webdriver: {
                    port: 4445,
                    start_process: true,
                    server_path: '/usr/bin/safaridriver'
                }
            },
    
            firefox: {
                desiredCapabilities: {
                    browserName: 'firefox'
                },
                webdriver: {
                    start_process: true,
                    port: 4446,
                    server_path: require('geckodriver').path
                }
            }
        }
    }
    

    现在,为了执行测试,我使用以下命令:

    npx nightwatch tests/TC001_WikiSearch.js -e default,firefox,safari
    

    引用自: https://testersdock.com/execute-parallel-tests-nightwatchjs/