一、测试内容
1、功能描述
测试APP的登录注册流程
包括:①匿名用户创建→输入手机号(校验)→获取验证码→登录/注册
其中session、userId和userName等需要在第一个请求的结果中获取,以供后面的请求使用,也叫作参数化
2、接口介绍
①user.register(自动注册匿名用户)
②mobile.checkPhoneNumber(校验手机号,是够合规)
③mobile.getValidateCode(获取验证码)ps,这一步直接使用通用验证码
④user.register(手机号登录或者注册)
以上,Method都是Get
3、返回结果
①user.register(自动注册匿名用户)image.png
②mobile.checkPhoneNumber
image.png
③mobile.getValidateCode(获取验证码)ps,这一步直接使用通用验证码
image.png
④user.register(手机号登录或者注册)
image.png
二、添加请求和断言
1、匿名注册一个用户信息
image.png
2、注册成功之后,服务端会返回session、userI和username等
这几个字段是下面几个接口中作为请求的参数,所以需要在第一个请求中设置参数,以便接下来使用
①在Tests中设置,代码如下
var jsonData = pm.response.json();
//打印接口中返回的session值和userId
console.log(jsonData.data.session);
console.log(jsonData.data.userId);
console.log(jsonData.data.username);
//设置全局变量session
pm.globals.set("session", jsonData.data.session);
pm.globals.set("userId",jsonData.data.userId);
pm.globals.set("userId",jsonData.data.username);
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
②点击“send”执行,发现右上角可以看到设置的全局变量和对应的值
image.png
3、下一个请求中,将直接使用设置的变量作为参数
image.png
再在Tests中写几个断言
//返回的状态码为200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
//返回的内容包含success
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("success");
});
4、第三个获取验证码的接口和第二个相同
第四个登录、注册的接口,请求的参数中多了一个username
image.png
如果登录/注册成功,应该加一些断言进行判断
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("用户名是小卖", function () {
var jsonData = pm.response.json();
var hasRelated = jsonData.data.username;
pm.expect(hasRelated).to.eql("小卖");
});
三、批量执行
{49D4FFC6-08CA-477C-BFF3-37E296DB62AC}_20200106185200.jpg
{5E5E57A9-642A-4AED-84CF-594FF3EB5DC4}_20200106185229.jpg
{7FC4B7C8-C731-422C-ABB9-D2BB40207407}_20200106185242.jpg