前提条件
测试环境: http://49.233.108.117:28019/swagger-ui.html#/
接口中主要操作
设置变量
使用变量发送请求
上下游传参
注册接口
根据文档
需要输入 用户名和密码.
- 用户名需要使用(11位)手机号码来注册
注册用户
- 点击 【Try it out】
输入信息, 注意:每次注册的时候需要使用不同的手机号码。
{
"loginName": "13400001111",
"password": "123456"
}
- 点击 【excute】
- 注册成功
- 如果再次注册,会提示注册失败。
登录接口
需要注意:登录接口中的密码 需要md5加密。
md5 在线加密
https://tool.chinaz.com/tools/md5.aspx
在登录接口中,使用密文进行登录。
加入购物车
- 登录接口提供 token值
// 服务器返回的接口
var jsondata = pm.response.json();
// 设置变量
pm.globals.set("token",jsondata.data);
- 首页接口中提供商品的id
pm.globals.set("gid", pm.response.json().data.hotGoodses[0].goodsId);
上面两个接口分别提取出 token值和 商品id
在加入购物车的接口中可以直接调用
使用token。
使用id
CSV参数化
做单接口测试,需要关注正常场景和异常场景。比如登录,登录的时候需要考虑异常测试。
根据登录接口,需要两个字段
用户名,密码
phone | passwd | errmsge |
---|---|---|
123456 | 登录名不能为空 | |
13400001131 | 密码不能为空 | |
41112341234 | 123456 | 请输入正确的手机号! |
18012341234 | 123456 | 登录失败! |
18012341234 | E10ADC3949BA59ABBE56E057F20F883E | 登录失败! |
测试登录接口
1219.csv
每条数据都对应不同的结果。需要添加断言。
断言的接口我们定义在csv文件中,需要获取csv文件中变量值;
获取变量
pm.test("Body matches string", function () {
// 获取csv文件中定义的变量 errmsg (csv文件写errmsg,这里也使用errmsg,保持一致)
var data = pm.variables.get("errmsg");
// 添加断言
pm.expect(pm.response.text()).to.include(data);
});
也可以直接从data中获取csv文件中设置的变量
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include(data.errmsg);
});
执行,可以看到执行的结果
Postman 工具
附件
下面为课堂练习文件
1219新丰.postman_collection.json
1219.csv
JMeter 工具
定义变量
定义变量的方式有多种,可以在【测试计划】上面直接添加,
也可以创建【用户定义的变量】—添加
创建http请求
在http请求中,如果请求的数据格式为 json格式,需要添加信息头管理器
函数助手
每次注册都使用手机号,可以使用函数助手随机生成一个手机号码
生成随机电话号码 并将号码保存到变量 phone
中
注册接口中可以使用函数助手来表示手机号码。
{
"loginName": "${__Random(13000000000,13999999999,phone)}",
"password": "123456"
}
md5 加密
登录接口中使用 md5加密
登录的数据
{
"loginName": "${phone}",
"passwordMd5": "${__digest(md5,123456,,,)}"
}
查看结果树,可以看到用户注册,用户登录使用的手机号码都是同一个;
上下游传参
json 提取器
$.data.newGoodses[0].goodsId
推荐一个在线格式化的工具
https://oktools.net/json
json 断言
csv参数化
还是使用登录接口
准备csv文件数据
phone,passwd,errmsg
,123456,登录名不能为空
13400001131,,密码不能为空
41112341234,123456,请输入正确的手机号!
18012341234,123456,登录失败!
18012341234,E10ADC3949BA59ABBE56E057F20F883E,登录失败!
登录接口使用参数。
断言中可以直接使用变量;