深入理解接口测试:实用指南与最佳实践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 复制代码
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文
相关推荐
API快乐传递者2 分钟前
Python爬虫获取淘宝详情接口详细解析
开发语言·爬虫·python
公众号Codewar原创作者4 分钟前
R数据分析:工具变量回归的做法和解释,实例解析
开发语言·人工智能·python
赵钰老师7 分钟前
基于R语言APSIM模型应用及批量模拟(精细农业、水肥管理、气候变化、粮食安全、土壤碳周转、环境影响、农业可持续性、农业生态等)
开发语言·数据分析·r语言
lly20240623 分钟前
Highcharts 饼图:数据可视化利器
开发语言
lw向北.29 分钟前
Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
android·开发语言·qt
IT女孩儿1 小时前
JavaScript--WebAPI查缺补漏(二)
开发语言·前端·javascript·html·ecmascript
m0_748238921 小时前
webgis入门实战案例——智慧校园
开发语言·ios·swift
Clockwiseee1 小时前
PHP伪协议总结
android·开发语言·php
小灰灰搞电子1 小时前
Qt实现Android的图案密码(图形解锁)源码分享
开发语言·qt
吴冰_hogan2 小时前
JVM(Java虚拟机)的组成部分详解
java·开发语言·jvm