【问题标题】:How do you get Cypress and JMeter to work simultaneously如何让 Cypress 和 JMeter 同时工作
【发布时间】:2021-07-29 05:11:23
【问题描述】:

我正在尝试让 Cypress 与 JMeter 配对。我当前的任务是从 cypress 测试中获取结果(性能时间),然后将它们与负载结果进行比较。编写测试后,我的第一个目标是让 cypress 启动我拥有的 JMeter 脚本,然后在这些脚本运行时执行测试。

我的第一个问题是尝试运行 exec 命令,但是,cypress 不断抛出错误,说 exec 不是函数。 错误:类型错误 exec 不是函数

context('Experimental', function () {
    it("Execute Command Line", function () {
        var exec = require('child_process').exec, child;
    
        child = exec('java -version', // Just an example
            function (error, stdout, stderr) {
                console.log('stdout: ' + stdout);
                console.log('stderr: ' + stderr);
                if (error !== null) {
                     console.log('exec error: ' + error);
                }
            });
         child();
    })
})

我也试过

var { exec } = require('child_process');

我的第二个问题是尝试使用 cypress 运行 exec 命令。但是,现在它等待命令完成。这不是错误,而是更多的想法是它正在运行 JMeter 并等待它完成,然后再继续测试,因为负载正在加载到服务器上。

context('Experimental', function () {
    it("Execute Command Line", function () {
        cy.exec('jmeter -n -t C:/test.jmx -l c:/results.csv', {timeout:600000})
        cy.log('Something')
        cy.pause()
    })
})

如果我可以在运行脚本的同时了解如何运行命令行,这将很有帮助,因为我需要实现类似的功能来启动环境。任何插件或模块也会有所帮助。我对 Javascript 非常缺乏经验。

【问题讨论】:

    标签: javascript command-line jmeter cypress


    【解决方案1】:

    赛普拉斯exec 任务需要从同步的it 上下文中执行,所以我不会说这是可能的,因为它与赛普拉斯测试构建模型不兼容。

    您是否考虑过使用 JMeter 编排所有内容?例如,您可以使用setUp Thread Group 来启动环境,一个Thread Group 用于创建负载,另一个线程组用于通过赛普拉斯测试检查前端。顺便说一句,JMeter 通过WebDriver SamplerSelenium 浏览器自动化框架集成。

    【讨论】:

      猜你喜欢
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 2020-01-21
      相关资源
      最近更新 更多