Chakram 测试不起作用
Chakram test not working
我正在寻找一个新的框架,我遇到了 chakram,现在我尝试进行以下测试:
进行 api 调用 (get) 和此 returns 一个我需要迭代的元素数组,并使用它的 ID 进行另一个 api 调用,然后断言内容.下面是数组的例子。
[
{
"id": "1",
"user": "user",
},
{
"id": "2",
"user": "user",
},
{
"id": "3",
"user": "user",
},
{
"id": "4",
"user": "user",
},
{
"id": "5",
"user": "user",
}
]
我无法使用响应中的每个 ID 进行另一个 api 调用。
这是我的测试:
describe("Call registered user", function(){
it("Validate all user data is ok", function(){
this.timeout(25000)
return chakram.get(config.environment.url)
.then(function(response){
//console.log(JSON.stringify(response,null, 4));
for(var i=0; i < response.length; i++ ){
console.log(config.environment.url+"/"+response.data[i].id);
return chakram.get(config.environment.url+"/"+response.data[i].id)
.then(function(userData){
console.log(i);
expect(userData.response.statusCode).to.equal(200)
return chakram.wait();
});
}
})
});
});
问题是测试没有达到要求。谁能指出我做错了什么。顺便说一句,我是 JS 的菜鸟。
首先我想指出的是.then
必须一个接着一个
并且您可以为每个测试使用 it("", () => {})
。
所以,
let testArray;
function testFunction() {
return chakram.get(config.environment.url)
.then(response => {
testArray = response;
})
}
describe("Call registered user", function(){
testFunction();
testArray.map( user => {
it("Validate userId: " + user.id, () => {
return chakram.get(config.environment.url+"/"+user.id)
.then(userData => {
console.log(user);
expect(userData.response.statusCode).to.equal(200)
return chakram.wait();
});
});
})
});
这样试试会更准确
我正在寻找一个新的框架,我遇到了 chakram,现在我尝试进行以下测试:
进行 api 调用 (get) 和此 returns 一个我需要迭代的元素数组,并使用它的 ID 进行另一个 api 调用,然后断言内容.下面是数组的例子。
[
{
"id": "1",
"user": "user",
},
{
"id": "2",
"user": "user",
},
{
"id": "3",
"user": "user",
},
{
"id": "4",
"user": "user",
},
{
"id": "5",
"user": "user",
}
]
我无法使用响应中的每个 ID 进行另一个 api 调用。
这是我的测试:
describe("Call registered user", function(){
it("Validate all user data is ok", function(){
this.timeout(25000)
return chakram.get(config.environment.url)
.then(function(response){
//console.log(JSON.stringify(response,null, 4));
for(var i=0; i < response.length; i++ ){
console.log(config.environment.url+"/"+response.data[i].id);
return chakram.get(config.environment.url+"/"+response.data[i].id)
.then(function(userData){
console.log(i);
expect(userData.response.statusCode).to.equal(200)
return chakram.wait();
});
}
})
});
});
问题是测试没有达到要求。谁能指出我做错了什么。顺便说一句,我是 JS 的菜鸟。
首先我想指出的是.then
必须一个接着一个
并且您可以为每个测试使用 it("", () => {})
。
所以,
let testArray;
function testFunction() {
return chakram.get(config.environment.url)
.then(response => {
testArray = response;
})
}
describe("Call registered user", function(){
testFunction();
testArray.map( user => {
it("Validate userId: " + user.id, () => {
return chakram.get(config.environment.url+"/"+user.id)
.then(userData => {
console.log(user);
expect(userData.response.statusCode).to.equal(200)
return chakram.wait();
});
});
})
});
这样试试会更准确