移动 网站模板,什么叫网站建设服务,有哪些网络推广平台,廊坊seo外包一、为什么选用postman
postman调试工具无论对于开发和测试小白#xff0c;还是技术大牛来说应该都耳熟能详#xff0c;在过去的几年里大家对这款工具应用最广的用途是把当作接口调试的测试工具#xff0c;它能发送几乎所有类型的HTTP请求#xff0c;操作界面非常简洁美观…一、为什么选用postman
postman调试工具无论对于开发和测试小白还是技术大牛来说应该都耳熟能详在过去的几年里大家对这款工具应用最广的用途是把当作接口调试的测试工具它能发送几乎所有类型的HTTP请求操作界面非常简洁美观大家来欣赏下图支持抓包保存历史记录有用户组管理机制方便多端同步用例等等。最主要的是各位小伙伴已经对它用于接口调试的功能非常熟悉已经为我们接下来使用它做持续集成的接口自动化打下了良好的基础。 二、postman 基础知识
相信大家使用postman来调试接口应该是相当熟悉了所以还不懂使用的同学可以在网上找到相关的资料非常多或者直接查阅官网我建议大家还是要学会看官方文档度娘很多教程可能会不全或者已经过时了官网是最新最全的学习文档不懂就慢慢看这篇文章只能带着大家入门修行只能靠自己微笑。
官方文档
https://learning.getpostman.com/docs/postman/launching_postman/
1、postman版本选择
postman分为chrome插件版和native版本插件版的有很多功能都受限制比如必须要安装扩展才可以操作cookieheaders设置受限制没有native版本的Postman console非常不方便调试等不方便我们后续做接口自动化所以版本必须选择native版版本号用最新的就可以。
工具下载
https://www.getpostman.com/downloads/
2、postman代理抓包
由于postman不是类似fiddle这种专门用于抓包的软件fiddler软件安装后默认打开抓包功能默认端口是8888但是postman需要自己手动打开代理设置。设置方法如下
①点击右上角的拦截图标打开【Capture requests】设置好Port和Target
注意Capture requests按钮一定是要处于on的状态
Port就是端口只要不设置系统和浏览器的冲突端口就可以比如9999
Target就是抓到的HTTP包存放的目标地我一般选择放在history方便查看。 ②打开浏览器的代理设置设置相同端口
打开浏览器找到代理服务器将地址修改为本地机器的ip地址端口设置为第①步设置的端口号点击确定即可。
我们演示的这个设置方法是以PC端为例子有些同学需要抓APP端的包。设置方法原理也大概相同大家可以参看官网文档中的设置方法即可。
移动端设置方法
https://learning.getpostman.com/docs/postman/sending_api_requests/capturing_http_requests 3、postman调试控制台
打开左下角打开【postman console】控制台当我们某个测试用例跑不通的时候需要调试可以打开这个postman的控制台方便查看接口调试的打印信息当然我们后续用js写的脚本可以在控制台中看到输出信息。 4、postman 发送请求
发送请求是postman最核心的功能如下图选择好请求方式及接口地址、相应参数点击发送即可。有两个地方强调下
①需要发送上传文件的请求在body中选择选择form-data 选择File选项后即可选择文件
②可以将请求头统一管理打开任意一个请求tab点击Headers-Presets-Manage Presets可以设置好请求头信息下一个请求再需要相同的请求头便可以从这里读取。 三、postman 变量与集合
1、什么是变量
首先我们来思考一个问题为什么要使用变量如果某个参数值只需要在某个独立接口的使用一次那么我们可以不使用变量但是如果变量需要在多个位置重复使用或者发生接口传递即前一个接口的返回值用于下一个接口的请求参数那么借助变量postman就可以实现业务逻辑与测试数据分离帮助我们建立健壮的测试用例。
2、变量的作用域
全局变量Global主要用于需要在多个位置重复使用的几乎不改变的数据
环境变量environment主要用于接口传递的参数
局部变量local集合/文件/接口中 某个js脚本中的变量
数据变量data主要用于并发测试json/csv文件
同变量名的情况下优先级范围局部变量数据变量环境变量全局变量
3、如何设置变量
设置变量的方法有两种
① 在postman的ui上进行定义如下图所示 ② 使用脚本定义在Test选项卡中填入脚本
pm.environment.set(new_name, zhougang); 4、如何使用变量
使用变量也是有两种写法用在不同的场景中
① 在Builder中使用{{varname}}一般用于请求头、请求体、请求地址中 ② 在js 脚本中使用pm.environment.get(variable_key)一般用于Test或pre-request Script选项卡中 5、集合
我们为什么要使用集合以及使用集合的好处在哪
①可以组织业务逻辑分类和存储接口
②方便一键运行在runner中选择要运行的集合或者里面的文件夹进行运行
③方便导入导出导出和导入json文件如使用newman在命令行执行
注意点集合和变量的导出是分开的。
④方便分享分享至自己团队的共享目录下
基于以上几点我们想要写出好维护且高效的接口测试用例一定要好好利用集合。 四、postman脚本应用–接口断言
前三节内容我们了解到了做自动化测试前必须掌握的基础知识这一节我们进入到接口自动化测试中的核心内容如何判断一个接口的返回值与期望值相符也就是我们说的接口断言成功。这个时候postman的测试沙箱sandbox就发挥了巨大的作用。官方解释Postman sandbox沙箱是一个JavaScript执行环境在编写pre-request scripts 和 test scripts编写的脚本在此沙箱中执行Postman和Newman中都可以使用
①在请求发送前在“pre-request script”选项卡下输入脚本主要用于设置测试需要的测试参数
②在请求发送后在“test”选项卡下输入脚本主要用于做断言。 ③因此如果我们需要断言一个接口返回是否是预期值可以参考如下例子
1判断code是不是返回200
var jsonData pm.response.json();
pm.test(操作是否成功, function () { pm.expect(jsonData.code).to.eql(200);
});
2判断字段是不是跟预期值相等
tests[名称是否正确] jsonData.data.name pm.environment.get(customer_contract_name);
3判断返回时间是否在预期2000ms内
pm.test(接口返回时间是否超过2s, function () { pm.expect(pm.response.responseTime).to.be.below(2000);
});
4执行顺序设定此代码只在runner和Newman中生效
postman.setNextRequest(接口名称);
上边的例子都可以在工具的右侧找到事例大大节省我们编写断言的时间如果这里没有你需要的可以查看帮助文档
https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/ 重点强调你可以将请求和测试脚本添加到一个集合一个文件夹一个请求中优先级是请求文件夹集合。举个例子判断返回时间的断言就可以放在集合或者文件中因为多个接口可以共用这一个断言。
五、postman接口自动化
前面我们已经做好了各种准备工作包括抓包、编写接口、存入集合、设置变量、断言等接下来就可以把我们的接口自动的跑起来。
1、使用postman自带的 runner工具
①按照下图进入runner页面在runner中选择要运行的collection或者里面的文件夹进行运行
②enviroment:选择用例跑的环境变量集合
③iterations:接口迭代次数接口自动化 默认使用1就行1以上一般拿来做并发测试
④delay每个接口发起请求的的间隔时间建议100ms
⑤data数据文件可以是json格式的也可以是csv格式的一般用于并发测试
⑤keep variable values: 重点必须要勾上环境变量将会更新
⑥start run运行结果集并查看结果页可导出 运行结果如下显示示例中34条成功0条失败。如果有失败的用例可以用控制台查看是请求没发送成功还是断言失败单独调试。 2、使用postman的插件Newman
到了这一步其实我们已经讲完用postman做接口自动化的一个完整过程了。但是再来思考一个问题如果我要将这个接口自动化测试加入持续集成的环节并且再给领导发一份这个测试结果的报告呢这时候 Postman的持续集成方案便是使用自带的插件Newman 持续集成工具如Jenkins的结合使用
1官方说明文档
https://www.npmjs.com/package/newman(https://www.npmjs.com/package/newman
2使用Newman运行用例并生成测试报告
①首先需要安装node.js环境同时安装了npm
下载地址http://nodejs.cn/download/
②使用命令行安装 Newman
npm install -g newman
安装导出html报告的包
npm install -g newman-reporter-html
③Newman运行命令脚本一般只需要指定运行集合、运行环境、间隔时间数据文件指定输出报告的模板和位置
原始脚本
newman run xxx.json
添加下述定制化参数
指定运行环境变量集合
--environment xxx.environment.json
指定输出环境变量集合
--export-environment xxx.environment.json
指定输出报告形式
-r cli,html
指定输出报告文件
--reporter-html-export xxx.htm
指定接口间隔时间:
--delay-request 100
进入脚本所在文件目录运行最终脚本
newman run cms_init.postman_collection.json --environment cms-test.environment.json --export-environment cms-test.environment.json -r cli,html --reporter-html-export ./reports/cms_init_html_output.htm --delay-request 120
运行结果命令行 运行结果html格式 3使用Newman与Jenkins结合
当我们将代码推送到git上后可以使用jenkins直接构建任务即可省去了脚本打包放到对应服务器再启用对应环境脚本的麻烦。
参考链接
https://www.jianshu.com/p/18863c609019
参考链接
https://blog.csdn.net/qq_16510189/article/details/79074809
①下载jenkins的war包使用java -jar jenkins.war –httpPort8080启动, 按照配置jenkins完成
②在Jenkins中安装对应的插件Git、NodeJS 插件
③新建job,配置相关内容 构建环境配置 构建脚本 选择构建查看控制台输出信息 六、与钉钉机器人结合
钉钉是我们常用于工作沟通的工具配合钉钉强大的机器人功能可以让我们在持续集成的测试环节中实时、快速接收到测试结果的消息推送。
1、建一个自动化测试群点击群设置-》群机器人 2、选择自定义机器人 3、添加机器人获取到access token 4、将access token设置到Jenkins中的钉钉通知器插件中在Jenkins插件中下载安装最后保存即可 5、Jenkins任务跑完以后钉钉就会收到消息推送 感谢每一个认真阅读我文章的人
作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。 软件测试面试文档
我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 视频文档获取方式 这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。