工具:cuketest
安装npm,nodejs
被测API:https://developer.github.com/v3/
案例说明:模拟匿名用户登录github,搜索cucumber,查询的结果不少于1条
辅助工具:Postman
思路:借助辅助工具查看接口返回数据内容,分析返回数据的格式内容,比较返回的数据长度,大于1。
先在Postman中访问该接口,返回的body如下图:
在cuketest中实现代码如下(导入got库)
运行结果:
When(/^搜索关键字"([^"]*)"$/, async function (arg1) {
var api_url= "http://api.github.com/search/repositories?q=cucumber"
res = await got.get(api_url)
//console.log(res)
//res.statusCode获取返回数据的状态码
console.log("======",res.statusCode)
});
用返回的状态码来判断是否与期望的结果一致,接下来补充代码
先试着打印L的值是什么,发现log里面包括了header等所有内容,但是我们比较刚刚的postman中我们只需要body中的内容,所以继续取L的body
因为返回数据格式是json的,为方便取items值,所以我们将L转换为json格式并用变量r存储,
Then(/^至少有一条结果$/, async function (count) {
var l = res.body
var r =JSON.parse(l)
console.log("l-------",r.items)
});
运行结果如图
补充至少有一条结果,代码如下:
Then(/^至少有一条结果$/, async function (count) {
var l = res.body
var r =JSON.parse(l)
//console.log("l-------",r.items.length)
return assert.ok(r.items.length > count)
});
这里报错。。。根据日志可判断是最后一步出现错误,比较失败
代码是没有问题的,变量count不是数字类型。。。写成了中文一
改完再运行