Postman接口测试实战-接口断言/newman执行集成(详细)

news2025/1/12 18:04:48

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

接口测试用例

接口的功能测试维度:单接口(正向和反向)和业务接口(一般做正向测试)

接口测试的测试用例编写:
不单单针对参数值正确与否进行,还可以针对参数本身进行测试

正向参数

必选参数:所有的必选(必填参数)都包含
组合参数:所有的必选+任意一个或多个可选参数
全部参数:所有的必选+所有的可选参数

反向参数

多参:多出一个或多个必选参数
少参:缺少一个或多个必选参数
无参:没有必选参数
错误参数:参数名输入有误

单接口测试用例要素:
编号、用例名(标题)、模块、优先级、前置条件、请求方法、URL、请求头、请求体(请求数据)、预期结果

21

业务场景接口测试用例要素:最少的用例覆盖最多的接口

接口测试的流程

1、查看api文档,了解业务逻辑及接口调用(无或文档不全,使用fiddler抓包)
2、编写接口的测试用例,用例测试点不止对接口的参数数值做测试,还要做参数本身做测试

单接口做正向和反向测试

正向:必选、组合、所有
反向:多参、少参、无参、错误参数

业务调用接口一般做正向测试,最少的用例覆盖最多的接口

3、使用postman或jmeter,对接口的参数化(csv或json)及接口参数的关联(json提取器或正则表达式提取参数值,设置全局或环境变量实现接口关联)

4、编写接口断言及接口用例的管理(csv或json数据驱动)

5、postman+newman实现接口测试的执行及输出报告

6、newman+postman+Jenkins实现持续集成

postman+newman安装

npm -v 查看newman,无版本号则先下载nodejs(官网下载安装)。
npm install -g newman-reporter-allure (安装allure报告)

npm install -g newman (在线安装newman)
npm install -g newman-reporter-html (在线安装html报告)

执行命令:newman run

常用参数:

-e 使用环境变量;
-g 使用全局变量;
-d 使用csv,json数据驱动;
-n 循环次数;
-r cli,html,json,junit --report-html-export 生成html报告;

应用步骤:
1、导出用例,环境变量,全局变量,数据文件 json格式

2、运行并生成html报告 (非GUI模式运行)

eg:   newman run "e:\postman_test\case\Test_collection.json" -e "e:\postman_test\case\environment.json" -g "e:\postman_test\case\globals.json" -r cli,allure --reporter-allure-export "e:\postman_test\allure_report"     

allure serve “e:\postman_test\allure_report” (直接看结果)

allure generate "e:\postman_test\allure_report"  -o "e:\postman_test\allure_html"  --clean

allure open “e:\postman_test\allure_html”(生成html后,通过allure open渲染后查看html文件)

eg:   newman run "e:\postman_test\case\Test_collection.json" -e "e:\postman_test\case\environment.json" -g "e:\postman_test\case\globals.json" -r cli,html,json,junit --reporter-html-export "e:\postman_test\report_newman.html"

Postman断言

1、断言响应状态码:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

22

2、断言响应体是否包含某个字符串:

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

23

3、断言响应体是否等于某个字符串:

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

24

4、断言JSON数据 value对应json返回值中的key

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

25

5、断言响应头

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type""对应的value值");
});

26

postman参数化

CSV文件、Json文件

csv:不支持布尔类型,不支持多参、少参、无参和错误参数,不支持复杂数据类型,文件大小较小;
json:支持布尔类型,支持多参、少参、无参和错误参数,支持复杂数据类型,文件大小较csv要大;

请求参数中——可以再请求头、请求行、请求体中使用,使用{{}}包括csv文件的字段名或json文件中的key eg:{{username}}

代码中——可以再请求前置脚本或断言中使用,需借助postman中的关键字date点csv文件的字段名或json文件中的key eg: date.username

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

勇敢面对挑战,不畏艰辛,奋斗不止。每一次努力都是自我突破的机会,每一次坚持都是迈向成功的脚步。相信自己的力量,追逐梦想,未来的辉煌将因你而绽放!

只有勇往直前,才能超越自我;只有拼尽全力,才能创造奇迹;只有坚持不懈,才能追逐梦想。相信自己,努力奋斗,未来将因你而绽放光彩!

只有经历最黑暗的夜晚,才会迎来最绚烂的曙光;只有一次次的挫折和奋斗,才能铸就坚不可摧的意志力。相信自己,勇往直前,梦想将绽放辉煌!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年项目管理系统排名:客观分析+推荐解决方案

一个高效的项目管理系统可以帮助企业提高生产力、降低成本并确保按时交付高质量的产品或服务。然而,市场上有众多的项目管理系统供选择,使得消费者在做出决策时可能会感到困惑。本文将对当前市场上最受欢迎的项目管理系统进行客观分析,并提供…

原型和原型链条、ES6、前后端交互Ajax

一、原型和原型链条 1.原型<script>/*原型 解决问题> 当你需要给实例对象添加方法> 直接书写在构造函数体内> 这个行为并不好> 我们的原型就是解决了这个问题 不好的原因> 当我把方法书写在构造函数体内> 每次创建实例的时候, 都会创建一个函数数据类…

21matlab数据分析牛顿插值(matlab程序)

1.简述 一、牛顿插值法原理 1.牛顿插值多项式   定义牛顿插值多项式为&#xff1a; N n ( x ) a 0 a 1 ( x − x 0 ) a 2 ( x − x 0 ) ( x − x 1 ) ⋯ a n ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n − 1 ) N_n\left(x\right)a_0a_1\left(x-x_0\right)a_2\left(x-x_0\…

SpringCloud【负载均衡策略、OpenFeign概述、入门案列、日志增强 、超时机制 】(三)

目录 客户端负载均衡_负载均衡策略 服务接口调用_OpenFeign概述 服务接口调用OpenFeign_入门案列 服务接口调用OpenFeign_日志增强 服务接口调用OpenFeign_超时机制 客户端负载均衡_负载均衡策略 以前的Ribbon有多种负载均衡策略 RandomRule - 随性而为 解释&#xff…

物联网如何为智慧城市提供动力

智慧城市可以创造一个基础设施顺畅、效率提升的乌托邦&#xff0c;改善城市地区的生活质量&#xff0c;促进当地经济发展。 其影响意义重大&#xff0c;预计到 2024 年智慧城市基础设施的收入将超过 1000 亿美元。 从改善公共交通到解决犯罪问题和提高能源效率——应有尽有&am…

2023年杭电多校第一场-E.Cyclically Isomorphic题解

样例&#xff1a; 输入&#xff1a; 2 2 2 ab ba 1 1 2 4 3 aab baa bba bab 6 1 2 1 3 1 4 2 3 2 4 3 4 输出&#xff1a; Yes Yes No No No No Yes 题目大意&#xff1a; 给定一个字符串数组&#xff0c;每次查询两个字符串是否可以通过一个字符串循环右移可以变成另一个字…

Java实现检测本地指定路径下某一个程序是否在运行

项目有一个需求需要通过网页超链接唤醒本地桌面程序&#xff0c;有一个小bug是重复打开桌面程序。需要后台开一个接口来判断本地桌面程序是否打开。可以通过以下简单的方法来实现。 要检测本地指定路径下某一个程序是否在运行&#xff0c;可以使用Java的ProcessBuilder类来实现…

千兆网口 VS 2.5G网口 VS 5G网口:如何选?

随着互联网应用的不断扩展和数据传输需求的增加&#xff0c;为了更好满足高质量、高效率的日常生活和工作需求&#xff0c;对于网络速度和数据传输能力的要求日益严苛。这推动了网络技术发展的进程。在千兆网口研发并普遍应用后&#xff0c;又进一步研发出了2.5G网口和5G网口两…

硬件知识:从1.0到5.3,各版本蓝牙协议有什么功能特点

目录 蓝牙1.0 蓝牙1.1 蓝牙1.2 蓝牙2.0 蓝牙2.1 蓝牙3.0 蓝牙4.0 蓝牙4.1 蓝牙4.2 蓝牙5.0 蓝牙5.1 蓝牙5.2 蓝牙5.3 不断更新的蓝牙协议升级了哪些功能&#xff1f; 蓝牙作为一种小范围无线连接技术&#xff0c;具有低功耗、低成本、方便快捷的特点&#xff0c;…

基于whisper和whisperx的语音视频和字幕对齐

环境的安装 创建py310虚拟环境,需要安装Anaconda的Python环境。 Python初学者在不同系统上安装Python的保姆级指引 Win10+Python3.9+GPU版pytorch环境搭建最简流程 Python虚拟环境的安装和使用 还需要提前安装FFmpeg用于音频操作,并添加到环境变量中。 创建一个名称为w…

中移链与BSN分布式云管平台集成,共同构建专属协同体系

01 中移链与BSN分布式云管平台集成&#xff0c; 融入BSN生态体系 中移链OPB&#xff08;OPB即开放联盟链&#xff0c;Open Permissioned Blockchain&#xff09;与BSN基于BSN分布式云管平台&#xff0c;打造了中移链专属门户、中移链专属运营、中移链专属运维功能模块&#x…

龙曲良 Tensorflow —— 随机梯度下降(自用)-4

目录 一、梯度下降 二、激活函数及其梯度 2.1 最简单的阶梯激活函数 2.2 sigmoid / logistic&#xff08;tf.sigmoid&#xff09; 2.3 tanh&#xff08;tf.tanh&#xff09; 2.4 ReLU&#xff08;tf.nn.relu&#xff09; 三、损失函数及其梯度 四、单、多输出感知机梯度…

springBoot使用webSocket的几种方式以及在高并发出现的问题及解决

一、第一种方式-原生注解&#xff08;tomcat内嵌&#xff09; 1.1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>1.2、配置文件 package …

HTML5——基础知识及使用

HTML 文件基本结构 <html><head><title>第一个页面</title></head><body>hello world</body> </html> html 标签是整个 html 文件的根标签(最顶层标签).head 标签中写页面的属性.body 标签中写的是页面上显示的内容.title 标…

LiveGBS流媒体平台GB/T28181功能-用户管理数据支持页面excel导入数据excel导出数据

LiveGBS功能-用户管理数据支持页面excel导入数据excel导出数据 1、用户管理2、Excel导出导入2.1、支持用户数据的Excel导出2.2、支持用户数据的Excel导入 3、搭建GB28181视频直播平台 1、用户管理 用户管理&#xff0c;支持配置添加管理员、操作员、观众等角色的用户&#xff…

QGIS二次开发:集成二维CAD控件MxDraw

本文记录在QGIS中集成MxDraw控件的方法。 一、安装MxDraw 参见笔者博文“FreeCAD二次开发&#xff1a;集成二维CAD控件MxDraw”所述的安装方法。 二、编译安装QGIS 参见笔者博文"Windows 10下编译安装QGIS"所述的编译安装方法。 二、集成方法 2.1 添加MxDrawVie…

JAVA主流压缩解压工具对比、用法与选取

一、JAVA主流压缩工具 java.util.zip&#xff1a; **说明&#xff1a;**Java标准库提供的压缩与解压功能&#xff0c;包含在java.util.zip包中。通过ZipInputStream和ZipOutputStream可以实现ZIP格式的压缩与解压缩操作。 适用场景&#xff1a; 适合简单的ZIP格式压缩与解压缩操…

FFMPEG android mac 编译 支持DASH/OPENSSL问题汇总

一 下载源码 FFMPEG https://github.com/FFmpeg/FFmpeg/tree/release/4.3 二 编写脚本 支持https 就必须添加open SSL 的编译 具体可以查看我的另一个关于open SSL 的 然后我们配置的一些路径 涉及 ndk 的一定要查看你用的ndk 版本 是否存在这些路径这是第一步 然后如果支…

按照Vue写WPF(1):属性绑定

文章目录 前言代码实现效果代码逻辑 总结 前言 作为一个使用Vue非常熟练的C#全干工程师。当我在接触WPF的时候&#xff0c;我就一直想用Vue的想法去重写WPF框架。经过一个星期的琢磨&#xff0c;终于琢磨出来了如何优雅的入参。期间看了上百篇博客&#xff0c;浏览了一堆的视频…

如何把打包的vue项目放到flask中:Flask init参数详解

参数列表 import_name: the name of the application package&#xff0c;感觉没什么用static_url_path: can be used to specify a different path for the static files on the web. Defaults to the name of the static_folder folder。描述静态文件&#xff08;css&#x…