【问题标题】:Send a REST message for each Cypress test result为每个赛普拉斯测试结果发送 REST 消息
【发布时间】:2021-11-21 08:26:51
【问题描述】:

有没有办法根据每个 cypress 测试结果调用 REST api?

我们有一个 zephyr 测试定义系统,作为我们公司自动化流程的一部分,我们必须使用它的 API (https://support.smartbear.com/zephyr-scale-server/api-docs/v1/) 来更改我们的测试人员定义的每个测试用例的状态。

在我的研究中,我们发现的唯一解决方案是使用 Reporter (https://docs.cypress.io/guides/tooling/reporters),然后使用一个小脚本解析结果,该脚本会为每个测试结果生成上述 REST 调用。

我想知道:有没有更优雅的解决方案可以通过 Cypress 直接调用 zephyr 应用程序?

【问题讨论】:

    标签: cypress


    【解决方案1】:

    我不知道 zephyr 需要什么信息,但是您可以使用很多钩子/事件。

    例如(在规范顶部或 /support/index.js 中)

    Cypress.on('test:after:run', (test, runnable) => {
    
      console.log('test,runnable', test, runnable)
    
      const details = {
        projectKey: Cypress.env('zephyr-project-key'),
        testName: test.invocationDetails.relativeFile,
        status: test.status,
        error: runnable.err.message,
        retries: runnable.retries.length,
        duration: test.wallClockDuration,
        startTime: test.wallClockStartedAt
      }
      
      cy.request('POST', 'api/end/point', { body: details })
      // or native fetch('POST',...) if a particular hook complains about using cy.request
    })
    

    还有

    on('after:run', (results) => {
      /* ... */
    })
    
    on('after:spec', (spec, results) => {
      /* ... */
    })
    
    on('after:screenshot', (details) => {
      /* ... */
    })
    

    或者(技术上在测试中)

    afterEach(() => {
      const test = cy.state('test')
      const runnable = cy.state('runnable')
      /* ... */
    })
    

    【讨论】:

    • 奇怪的是,cy.request 没有为我做任何事情,没有发送请求,也没有抱怨...... Fetch 仍然有效,但就像这样:fetch('https://somewebhook', {mode: 'no-cors'})
    • 我有一种感觉——如果测试完成了,cy.* 的任何东西都可能不再起作用。
    • 感谢您的回复!我想知道,是否有任何方法可以确定测试结果然后发送 REST 请求?似乎这些请求仅在测试期间可用:\
    • 部分或大部分钩子(尤其是test:after:run)应该在测试完成后发生。至少,我在test.status 中观察到了一个值,从逻辑上讲,它只会在测试完成后才会被填写。
    • 感谢您的帮助。我将在下周最近写一个 PoC,并确认这是否确实有效。
    猜你喜欢
    • 1970-01-01
    • 2023-02-14
    • 2021-10-20
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多