我想要实现的是在名为TestLodge的外部测试用例管理系统中跟踪Protractor的测试结果。 流程是这样的: 1.通过GitLab管道部署Angular应用程序。 1a。在测试用例管理系统中创建了一个“测试运行”。 2.启动量角器测试(部署过程的一部分) 3.调用测试用例管理API来传递测试结果。
测试管理系统具有其API,该API允许在特定测试运行中进行调用和更新结果(例如TETS01-通过,TEST02-失败)。这样做的目的也是为了跟踪测试结果+测试管理系统可以根据测试结果在bug跟踪系统中自动创建票证。
我该如何正确地从Jasmine中提取测试结果,然后如何对测试管理系统进行API调用,以告知该测试哪个测试应该以通过/失败状态进行更新。 有没有什么库可以提取茉莉花结果并触发一些api调用? 我看到了2-3个用于TestRail的库(它也是一个测试管理系统),但是没有一个用于TestLodge的库。而且我的编程能力不足以使用节点的“ http.request”或类似的东西来独自创建功能。 关于我作为测试员的任何建议可以实现这一目标?
答案 0 :(得分:0)
要获得测试结果,可以通过Jasmine记者进行。我将参考my previous answers中有关如何创建此类报告者的内容。在那种情况下,我的记者正在获取测试套件的结果并上传到dynamoDB。
请注意,尽管在此示例中禁用了控制流,所以使用async/await
语法来管理Promise。
要发送请求,有一个有用的npm软件包,名为request
,该软件包提供了用于创建http请求的简单语法。我最近在Protractor框架中一直使用此程序包,并取得了成功。
我将API调用的结构像这样
const request = require('request');
module.exports = class Endpoints {
sampleRequest(token, JSONbody) {
let endpoint = 'http://yourURLEndpoint:9090/api'
return new Promise((resolve, reject) => {
let options = {
method: "PATCH",
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token,
},
body: JSON.stringify(JSONbody),
};
request(
endpoint,
options ,
function (error, response, body) {
if (!error && (response.statusCode >= 200 && response.statusCode < 300)) {
resolve(body);
} else {
console.log('error with request sent');
reject(JSON.stringify(response, undefined, 2));
};
}
);
});
};
}
Spec.js
let apiCallsFile = require('../apiCalls/restCalls');
let apiCalls = new apiCallsFile();
describe('Smoke test to', function () {
it('add a life entity to the case', async function () {
let testOutcome = {
"testOutcome" : "FAIL",
"testNumber" : "101"
};
let apiResult = await apiCalls.sampleRequest(bearerToken, idOfCase, {testOutcome );
expect(apiResult.status).toBe(201);
});
}