深入理解接口测试:实用指南与最佳实践5.0(三)

✨博客主页: https://blog.csdn.net/m0_63815035?type=blog

💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨

前言

这一阶段是接口测试的学习,我们接下来的讲解都是使用Postman这款工具,当然呢Postman是现在一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会 经常使用。后期讲解大概分三部分进行讲解:

1、根据接口API文档编写接口测试用例

2、使用Postman工具进行接口测试,并能够对大量接口用例进行管理、对接口响应结果进行断言、处理多接口的依赖及生成测试报告

3、使用Python+Requests封装的接口测试框架,实现接口对象封装、测试用例编写、测试数据管理及生成测试报告

目录

day03 一、(Postman断言、关联、参数化)

学习目标

能够使用Postman对响应结果自动断言

能够使用Postman处理关联数据

能够使用Postman进行接口参数化处理

一、Postman断言







二、Postman关联





案例2:

python 复制代码
使用 postman 关联技术,实现 添加员工 接口。登录成功,返回的"令牌"被 添加员工 接口依赖。
思路:
1.发送登录请求(必须登录成功),获取响应结果
2.从 ison 响应结果中,提取 data 值。拼接上"Bearer"前缀。
	2.1 注意:Bearer单词不能拼错,首字母必须大写,只有一个空格
3. 将拼接无误的 令牌,存入 环境变量。 从"眼睛" 图标查看。
4.添加员工 接口,从 环境变量 中,提取 令牌。设置到请求头中,作为 Authorization 的 值。
5.填写 添加员工 接口 其他信息(post、URL、请求体),发送请求。


三、Postman参数化







接口测试-day03-作业

1,下文中关于断言的描述正确的是?

js 复制代码
// 测试响应状态码是400
pm.test("测试响应状态码是300", function(){
    pm.response.to.have.status(200)
});

A:判断接口返回的响应状态码是不是300

B:判断接口返回的响应状态码是不是200

C:判断接口返回的响应状态码是不是400

D:以上都不正确。这个不是判断http响应状态码的断言。

答案:

yacas 复制代码

2,postman提供了常用的断言代码片段,请根据下文中给出断言代码片段和实际代码填入正确的匹配关系

js 复制代码
Status code:Code is 200   (  )
Response body : Contains string  (  )
Response body : JSON value check  (  )
js 复制代码
A : 
pm.test("Test", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.success).to.eql(true);
});

B :
pm.test("Test", function () {
    pm.response.to.have.status(200);
});

C :
pm.test("Test", function () {
    pm.expect(pm.response.text()).to.include("test");
});

3, 假设下列json数据是某接口返回的响应数据,请选出正确选项

json 复制代码
{
    "username":"13800000002",
    "data": {"nickname":"德玛西亚",
    		 "mobile":"13800000002",
        	 "birthday":"123456",
    		 "hopy":{"read":"三体", 
    				 "sport":"basketball"}
			}
}

A :要提取 username 的数据,需要使用 pm.response.json().username

B :要提取 birthday 的数据,需要使用 pm.response.json().birthday

C : 要提取 sport 的数据,需要使用 pm.response.json().data.hopy.sport

D : 以上说法全部错误

答案:

yacas 复制代码

4,参照课堂 添加员工 案例,使用postman关联技术,实现 ihrm系统的 查询员工。注意有 2 处依赖。

yacas 复制代码

答案:

shell 复制代码

5, 针对ihrm登录接口,将 请求数据 和 断言数据 组织成JSON文件,并使用postman批量运行。测试5条数据即可。

yacas 复制代码

接口测试-day03-作业-答案

1,下文中关于断言的描述正确的是?

js 复制代码
// 测试响应状态码是400
pm.test("测试响应状态码是300", function(){
    pm.response.to.have.status(200)
});

A:判断接口返回的响应状态码是不是300

B:判断接口返回的响应状态码是不是200

C:判断接口返回的响应状态码是不是400

D:以上都不正确。这个不是判断http响应状态码的断言。

答案:

yacas 复制代码
B

2,postman提供了常用的断言代码片段,请根据下文中给出断言代码片段和实际代码填入正确的匹配关系

js 复制代码
Status code:Code is 200   ( B )
Response body : Contains string  ( C )
Response body : JSON value check  ( A )
js 复制代码
A : 
pm.test("Test", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.success).to.eql(true);
});

B :
pm.test("Test", function () {
    pm.response.to.have.status(200);
});

C :
pm.test("Test", function () {
    pm.expect(pm.response.text()).to.include("test");
});

3, 假设下列json数据是某接口返回的响应数据,请选出正确选项

json 复制代码
{
    "username":"13800000002",
    "data": {"nickname":"德玛西亚",
    		 "mobile":"13800000002",
        	 "birthday":"123456",
    		 "hobby":{"read":"三体", 
    				 "sport":"basketball"}
			}
}

A :要提取 username 的数据,需要使用 pm.response.json().username

B :要提取 birthday 的数据,需要使用 pm.response.json().birthday

C : 要提取 sport 的数据,需要使用 pm.response.json().data.hobby.sport

D : 以上说法全部错误

答案:

yacas 复制代码
A、C

4,参照课堂 添加员工 案例,使用postman关联技术,实现 ihrm系统的 查询员工。注意有 2 处依赖。

yacas 复制代码

5, 针对ihrm登录接口,将 请求数据 和 断言数据 组织成JSON文件,并使用postman批量运行。测试5条数据即可。

json 复制代码
// login.json 数据文件
[
	{"mobile":"13800000002","password":"123456","code":10000},
	{"mobile":"13800138002","password":"123456","code":20001},
	{"mobile":null,"password":"123456","code":20001},
	{"mobile":"1380013800","password":"123456","code":20001},
	{"mobile":"13800abcd*#","password":"123456","code":20001},
	{"mobile":"13800000002","password":null,"code":20001}
]
js 复制代码
// postman -- body
{"mobile":"{{mobile}}","password":"{{password}}"}
js 复制代码
// postman -- Tests
console.log("预期结果=" + data.code)

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(data.code);

    console.log("实际结果=" + jsonData.code);
});
csharp 复制代码
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文
相关推荐
小白学大数据1 小时前
Python爬虫开发中的分析与方案制定
开发语言·c++·爬虫·python
冰芒猓2 小时前
SpringMVC数据校验、数据格式化处理、国际化设置
开发语言·maven
失落的香蕉2 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
红中马喽2 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
杜杜的man3 小时前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang
java小吕布3 小时前
Java中Properties的使用详解
java·开发语言·后端
versatile_zpc4 小时前
C++初阶:类和对象(上)
开发语言·c++
尘浮生4 小时前
Java项目实战II基于微信小程序的移动学习平台的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·学习·微信小程序·小程序
娅娅梨4 小时前
C++ 错题本--not found for architecture x86_64 问题
开发语言·c++
汤米粥5 小时前
小皮PHP连接数据库提示could not find driver
开发语言·php