接口测试(下)

简介: 接口测试(下)

用Postman管理测试用例


image-20230529145733529.png


使用基本和ApiFox相同


==断言:==

image-20230529141836642.pngimage-20230529142125323.png


断言实例


image-20230529142304723.png


解释


1.   pm.test() 函数用于定义一个测试用例,该函数接受两个参数:测试用例的名称和一个匿名函数,该匿名函数包含了测试用例的具体实现逻辑。
2.   匿名函数中的 pm.response.to.have.status(200) 语句用于检查 API 响应的状态码是否等于 200。如果状态码不等于 200,则测试用例失败,Postman 将输出测试失败的详细信息;如果状态码等于 200,则测试用例通过,Postman 将输出测试通过的信息。
因此,这段代码的目的是测试 API 响应的状态码是否等于 200,以确保 API 的正常运行。如果 API 返回的状态码不是 200,则测试用例将失败,Postman 将输出测试失败的详细信息。

image-20230529143026840.png


==断言为JSON格式的数据:==


pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
//解释
 - pm.test() 函数用于定义一个测试用例,该函数接受两个参数:测试用例的名称和一个匿名函数,该匿名函数包含了测试用例的具体实现逻辑。
 - 匿名函数中的 var jsonData = pm.response.json(); 语句用于将响应数据解析为 JSON 格式,并将其存储在 jsonData 变量中。
 - pm.expect(jsonData.value).to.eql(100) 语句用于检查 jsonData 中的 value 属性是否等于 100。如果相等,则测试用例通过,否则测试用例失败。【断言指定的属性的类型不能改变】


image-20230529145241586.png


全局变量和环境变量


如果我们想要测试两个接口, 前一个的输入就是等于后一个的输出, 那么我们就可以用一个全局变量来进行记录。


概念

**全局变量: **


全局变量是全局唯一的变量, 不可重复定义的变量


**环境变量: **


环境变量是
 - 一个变量只能属于某个环境, 在某一个环境中不可重复定义
 - 在环境与环境之间可以定义重复的变量
 - 一个环境可以包含多个环境变量
 - 常见环境分类: 开发环境、 测试环境、 生产环境


设置变量


**基本语法: **


全局变量: 
pm.globals.set("var_name", value);
环境变量 :
pm.environment.set("var_name", value);


获取变量值:

基本语法:


全局变量: (两种)
1. {{var_name}}
2. var value =  pm.globals.get("var_name");
环境变量:(两种)
1. {{var_name}}
2. var value = pm.envirment.get("var_name");


postman请求前置脚本


postman断言工作的原理


image-20230529151718865.png


应用场景:


image-20230529151522923.png


**请求前置脚本 : **


也就是在请求发送(send)后, 请求前置脚本代码,第一时间被执行,在postman内部实际http请求之前。

how to used


通过设置我们需要的得到的变量
比如时间
var timestamp = new Date().getTime()
然后将变量设置为全局变量。


image-20230529153155994.png


通过上述的方式 ,我们需要设置的变量就已经设置到了全局变量中了


**接下来就是获取: **

image-20230529153327027.png



**获取结果: **image-20230529153712497.png


==postman的关联==

应用于多个请求之间, 有数据关联、或依赖关系时 。(用的较多)


==登录—令牌==


A、B 两个接口
1. 向B接口中发送请求, 获取数据
2. 将数据设置成为全局变量(环境变量)中,
3, A接口 获取全局变量(环境变量) 中的数据, 进行使用


**应用案列: **


image-20230529160021126.pngimage-20230529160337324.png


执行测试


image-20230529161003995.png


## 使用newman生成测试报告

先进行安装newman


然后通过下面的命令进行生成测试报告


image-20230531152159286.png


postman读取外部数据文件(专业名称: 参数化)



如果说我们的请求只有请求体或者参数中的数据不同之外, 其他都一样, 那么我们就需要通过参数化 来将数据导入, 让其自动执行即可


两种数据文件格式


CSV : 数据组织形式简单, 适用于大数据的场合


缺点: 
1. 不支持bool类型数据
2. 不支持多参、少参、错误参数的接口测试
3, 不支持复杂数据类型(如嵌套、列表等)


JSON:


优点 :
完全弥补了CSV格式的缺点
缺点:
1. 相同数据量, json格式的数据文件大小远大于csv格式的文件大小


导入文件


csv文件


  1. 创建XXX.csv文件
  2. 将数据写入csv文件中
  3. 在postman中, 选中使用数据文件的用例集


具体操作步骤:


image-20230531154739798.png


json文件


  1. 创建xxx.json格式的文件
  2. 按照json格式的语法写入数据 ,但是要求json内容的最外层必须是[ ]包裹 , 内部是{ }


使用


一般的使用方式主要有两种


请求参数(请求头、 请求体、请求行)中使用

格式:
使用{{username}} 包裹 csv文件的字段名 或者 json文件的key


在代码中(断言 、 请求前置脚本)中使用


需要借助postman提供的关键字data后面 跟 csv文件的字段名 或者 json文件的key
格式: data.字段名


测试



image-20230531160535049.png


https://cx.shouji.360.cn/phonearea.php?number=13399720059


1. 编写断言


1.首先选择哪种断言方式, 我们这里用到的是断言运营商是否为电信


2.导入模板


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

3.更改模板为我们需要的

我们需要的是 : 手机号运营商 是否为电信

image-20230531161434527.png


==进行更改==


// 主要用来断言 手机号运营商 是否为电信
pm.test("断言手机号运营商", function () {
    var jsonData = pm.response.json();  //得到整个响应体
    //todo 我们需要从整个响应体中找打一级标题data
    //然后从data中找打sp, 然后进行判断是否相等
    pm.expect(jsonData.data.sp).to.eql("电信");
});
pm.test("断言 响应码", function () {
    pm.response.to.have.status(200);
});


4.发送请求


image-20230531161710112.png

5.导入数据 && 查看数据的响应

错误实例(send按钮无法读取文件)


image-20230531162754651.png

==正确操作==image-20230531164012877.png


6.运行结果


image-20230531164240240.png

目录
相关文章
|
25天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
46 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
212 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
223 3
快速上手|HTTP 接口功能自动化测试
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
38 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
43 5
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
4月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
196 5
Postman 接口测试配置 Pre-request Script
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
3月前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
|
3月前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
104 1