012b、数据驱动(2)用数据驱动测试前程贷登录接口
数据驱动案例 2 :
1、环境变量 dev 如下:
2、请求头
3、请求体为
{"mobile_phone": "{{req_mobile_phone}}", "pwd": "{{req_pwd}}"}
4、后置脚本test为
// csv文件中,code列 var code = pm.variables.get("res_code"); console.log(code) // csv文件中,res_mobile_phonee列,转化为字符串,否则比对时会报错。 var res_mobile_phone = pm.variables.get("res_mobile_phone"); var mobile_phone = res_mobile_phone.toString() console.log(mobile_phone) // csv文件中,res_msg列 var msg = pm.variables.get("res_msg"); console.log(msg) // 获取响应结果 var jsonData = pm.response.json(); // console.log(jsonData) // console.log(jsonData['code']) // console.log(jsonData['data']['mobile_phone']) // console.log(jsonData['msg']) // 引用code列进行断言 if (!code){ if (jsonData['code'] != null){ pm.test("断言code", function () { pm.expect(jsonData['code']).to.eql(code); }); } else { console.log("响应结果数据中没有code") } } else{ console.log("csv文件中code列为空") } // 引用msg列进行断言 if (msg.length != 0){ if (jsonData['msg'] !=null){ pm.test("断言msg", function () { pm.expect(jsonData['msg']).to.eql(msg); }); } else { console.log("响应结果数据中没有msg") } } else{ console.log("csv文件中msg列为空") } // 引用mobile_phone列进行断言 if (mobile_phone.length != 0){ if (jsonData['data']['mobile_phone'] != null){ pm.test("断言mobile_phone", function () { pm.expect(jsonData['data']['mobile_phone']).to.eql(mobile_phone); }); } else { console.log("响应结果数据中没有mobile_phone") } } else{ console.log("csv文件中mobile_phone列为空") }
5、请求数据 test_login.txt 为:
id,case_name,req_mobile_phone,req_pwd,res_code,res_msg,res_mobile_phone,method,url login_01,测试账号登陆成功,普通用户账号、密码,15121886677,12345678,0,OK,15121886677,post,/member/login login_02,测试账号登陆成功,管理员账号、密码,18820992515,Aa123456,0,OK,18820992515,post,/member/login login_03,测试账号登陆失败,普通用户,密码错误,15121886677,45678321,1001,账号信息错误,,post,/member/login login_04,测试账号登陆失败,管理员账号,密码错误,18820992515,34567890,1001,账号信息错误,,post,/member/login login_05,登陆失败,未注册过的手机号(非管理员账号、非普通账号),15362990000,1234567890,1001,账号信息错误,,post,/member/login
如果把含有中文字符的用例放在csv文件中,在运行时会有字符乱码显示。目前尚未解决,但是放在txt文件改成utf-8编码,中文显示正常。所以上面用了txt文件。
6、选择用例数据,执行
运行结果如下: