gpt4 book ai didi

cypress - 为每个 Cypress 测试结果发送一条 REST 消息

转载 作者:行者123 更新时间:2023-12-05 02:38:55 24 4
gpt4 key购买 nike

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

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

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

我想知道:是否有更优雅的解决方案来直接调用 zephyr 应用程序,也许是通过 Cypress?

最佳答案

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

例如(在规范顶部或/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')
/* ... */
})

关于cypress - 为每个 Cypress 测试结果发送一条 REST 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69376236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com