菜鸟postman接口测试_postman 接口测试(转)

本文转载自testerhome;

作者:xinxi1990 ;

原文链接:https://testerhome.com/topics/18719;

转载以分享知识为目的,著作权归原作者所有,如有侵权,请联系删除。

postman使用

创建用例集

启动postman以后,会看到这个控制面板.

d5ea8e94d91aa06267b7929cc9ceda9b.png

点击Request是创建一个Request测试请求,但是需要创建用例集保存这个请求.

b848056a4a345a9814fc320ee2db769d.png

点击Collection是创建一个用例集来保存测试请求.

创建Collection完成后,会在左侧生成用例集文件架,每次创建的测试接口都要保存到用例集中.

36b35c73660c285da614d6bcf0f10366.png

第一个接口测试

创建get请求为例,通常需要写url、params、headers,会把params拼接到url末尾.

391552c4a19a18ba7342a694c506466b.png

点击send按钮并且请求成功,会展示响应结果.

ac0c367d20596ccbb629e136bc9b0cda.png

创建post请求为例,通常需要写url、body、headers等参数,body参数格式一般是form或者json格式.具体body使用那个格式,需要按照接口文件中的参数.

736bcaa9b8ba1f69b702734313fff50c.png

接口断言

点击Tests编写测试断言

fcbd1e6a7f77643a62fa129379429279.png

断言响应时间

pm.test("Response time is less than 200ms", function () {    pm.expect(pm.response.responseTime).to.be.below(200);});// 断言响应事件小于200ms

断言状态码

pm.test("Successful POST request", function () {    pm.expect(pm.response.code).to.be.oneOf([200,202]);});// 断言状态码200-202区间

断言响应中包含某个字符串

pm.test("Body matches string", function () {    pm.expect(pm.response.text()).to.include("ok");});// 断言响应中包含"ok"

断言响应中的字段等于某个值

pm.test("message test", function () {    var jsonData = pm.response.json();    pm.expect(jsonData["message"]).to.eql("ok");});// 断言响应中"message" = ok"

断言响应中的字段不等于某个值

var jsonData = JSON.parse(responseBody);tests["message不为bad"] = jsonData["message"] != "bad";// 断言响应中"message" != bad"

断言响应中的列表长度

pm.test("data list test", function () {    var jsonData = pm.response.json();    pm.expect(jsonData["data"].length).to.eql(41);});// 断言响应中"list"的字段长度

断言响应中的列表中第几个元素的字段值

pm.test("data list 0 test", function () {    var jsonData = pm.response.json();    pm.expect(jsonData["data"][0]["time"]).to.eql("2018-11-28 17:27:41");});// 断言响应中"list 0的"的time字段的值

json schema验证

tv4是postman内置的JSON Schema验证库,参考:https://geraintluff.github.io/tv4/

responseBody如下==:==

{    "errCode": 0,    "errMsg": "",    "data": {        "id": 3210,        "title": "",
const customerSchema = {  "type": "object",          "properties": {    "errCode": {        "type": "integer",        "minimum": 0,        "maximum": 3,        "minLength": 2,        "maxLength": 3    },    "errMsg": {"type": "string"},  }};var customer = JSON.parse(responseBody);// console.log(customer);tests["Valid Data1"] = tv4.validate(customer, customerSchema);//验证json中的errCode类型是integer,并且验证最小值和最大值区间、验证长度区间

以上是常用断言方法,更多使用参考:https://learning.getpostman.com/docs/postman/scripts/test_scripts/

测试前准备

发送请求之前往往需要准备数据,比如设置header中参数或者计算签名.

使用Pre-request Script可以编写一些准备数据.

d23ee92c1427646c4995680dfb6f2c9f.png

在header头中引入刚刚设置{{timestamps}}环境变量.

66bf1cb91b1fe1b6e92d24a1c7356be9.png

可以看到header中已经填写了时间戳参数.

4672341be66db20142bafa22419e6d6d.png

请求前编写加密算法

var username = "test";var pwd = "123321";var base64Str = CryptoJS.enc.Utf8.parse(username+pwd);var token = CryptoJS.enc.Base64.stringify(base64Str);postman.setGlobalVariable("token",token);console.log(token);// 使用账号+密码的base64位加密算法

加密生成的字符串

ec661c36adc63508bf1001fb79b39eba.png

header头中携带生成加密的token变量

383ce83d6bb0aa4f4212580c14c5d40a.png

服务端使用base64位解密

02010a4e56dcb1ae0b6f895e2e6560ed.png

接口环境变量

b20309c1e04b4ac1e3b53069e9942afd.png
c5d4726487af91b77bc14b17e644e586.png
f1839d5fb35c8d3b407e3cf6e675d71a.png

接口参数化

全局变量

670e6a521fdcbffc7403798962e7d365.png

局部变量

使用{{}}作为变量

b4b46c3b6ca689a84a75f2ccb35db753.png

参数化文件

.csv文件格式,第一行是变量名,后面是具体赋值.

e9d30c2cc143c9a0fd9dfe2eee8e40f2.png

选择参数化文件

74f3da1ec10fd2f6fbc875f14be694e2.png

接口参数传递

在登录接口的响应数据中获取token值.

394f809715b71f86f14057c565742173.png

把token传递给第二个接口中的header头中.

a3296342d3a02e3049fad3eeeab5a738.png

第二个接口中的header头中已经拿到了token.

16a8f11910c0ddb3ccd9584097fb5a4c.png

其他常用的方法

设置环境变量

pm.environment.set("variable_key", "variable_value");

设置全局变量

pm.globals.set("variable_key", "variable_value");

获取环境变量

pm.environment.get("variable_key");

获取全局变量

pm.globals.get("variable_key");

清除环境变量

pm.environment.unset("variable_key");

清除全局变量

pm.globals.unset("variable_key");

newman使用

官方教程

https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/

安装

npm install -g newman

运行

简单运行

newman run 接口测试.postman_collection.json

打印循环次数、请求次数、断言次数、耗时等,但是没有输出文件.

040d22bb49315ca090d51080b8e8435a.png

循环执行

newman run 接口测试.postman_collection.json -n 2
cc8df806377f9e689f0ef243061c7853.png

参数化

-d是参数化文件

newman run 接口参数化测试.postman_collection.json -d 参数化数据.csv
db84ca021b190f6166d5776698c1f693.png

报告

jenkins持续集成

在jenkins中创建自由风格的job

8bf6bf27657a3a0c0f90b3afd9b199ba.png

job配置

构建shell配置

newman run 文件路径/接口测试.postman_collection.json--reporters cli,html,json,junit--reporter-json-export jsonOut.json--reporter-junit-export xmlOut.xml--reporter-html-export htmlOut.html

构建后报告配置参数

**/*.xml
2abf76bc4577b86e0ee24012c24a3391.png
3bccbaa62ce748ee73a04535518ac514.png
37031824354a9e48bf3ac8e70e762a8d.png
1aece79ac4d532ae9ca2758eec243cb9.png

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

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

相关文章

vb 数组属性_VB中菜单编辑器的使用讲解及实际应用

大家好,今天我们共同来学习VB中菜单方面的知识。VB中菜单的基本作用有两个:1、提供人机对话的界面,以便让使用者选择应用系统的各种功能;2、管理应用系统,控制各种功能模块的运行。在实际应用中,菜单可分为…

《JAVA程序设计》_第七周学习总结

一、学习内容 1.String类——8,1知识 Java专门提供了用来处理字符序列的String类。String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。需要注意的是Java把String类声明为final类,因此用户不能扩展Stri…

NeHe OpenGL教程 第三十七课:卡通映射

转自【翻译】NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改。对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢。 NeHe OpenGL第三十七…

SDN交换机在云计算网络中的应用场景

SDN的技术已经发展了好几年了,而云计算的历史更长,两者的结合更是作为SDN的一个杀手级应用在近两年炒得火热,一些知名咨询公司的关于SDN逐年增加的市场份额的论断,也主要是指SDN在云计算网络中的应用。 关于SDN在云计算网络中的应…

sql server 里面怎么支持数字使用双引号_国查:用中文编写SQL

这两天被 文言(wenyan-lang)刷屏了,这个项目在于使用文言文进行编程,我打算蹭个热度,把年初的作品再捞一捞,即中文SQL。1. 文言Wenyan:吾有一數。曰三。名之曰「甲」。為是「甲」遍。吾有一言。曰「「問天地好在。」」…

革新以太网交换机架构 全光网络的风刮进园区

全光网络的风正在刮进园区网,众所周知,光纤入户发展迅速,随着PON(无源光纤网络)技术在运营商通信网络的大规模使用,PON相关产业链逐步成熟,这也使得PON技术逐步在企业园区网得到应用。 基于铜线…

漫谈单点登录(SSO)(淘宝天猫)(转载)

1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是&…

越狱第一至五季/全集迅雷下载

越狱 第一季 Prison Break Season 1 (2005) 本季看点:迈克尔斯科菲尔德是一头陷于绝境欲拼死一搏的怒狮——他的哥哥林肯巴罗斯被认定犯有谋杀罪被投入了福克斯河监狱的死囚牢。虽然所有的证据都指出林肯就是凶手,迈克尔坚信兄长是无辜的。林肯的死刑执行…

java -jar 默认参数_JAVA入门学习指南,建议收藏

如果你不懂Java 并且想认真学习接触了解一下Java的语法,建议把这篇文章收藏了,多看几遍,应该可以初步掌握Java 大部分基础的语法 。 让我们出发吧!ps:本文有点长,耐心阅读 。〇,编程环境工程项目推荐使用ID…

【RabbitMQ】 WorkQueues

消息分发 在【RabbitMQ】 HelloWorld中我们写了发送/接收消息的程序。这次我们将创建一个Work Queue用来在多个消费者之间分配耗时任务。 Work Queues(又称为:Task Queues)的主要思想是:尽可能的减少执行资源密集型任务时的等待时…

笑看职场什么程序员才抢手,什么样的程序员涨薪多?

​程序员,怎么才算合格,不好说吧;他就像销售一样,一名销售员,比如网络销售卖茶叶,他卖茶叶很厉害呀,可是你让他去销售房地产,就算他有点销售的基础,也要重新去学怎么销售…

Android画布Canvas裁剪clipRect,Kotlin

Android画布Canvas裁剪clipRect,Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.height, Bitmap.Config.A…

调查|73%的公司正使用存在漏洞的超期服役设备

本文讲的是调查|73%的公司正使用存在漏洞的超期服役设备,一份新近的调查覆盖了北美350家机构的212000台思科设备。结果显示,73%的企业正在使用存在漏洞、超期服役的网络设备。该数字在上一年仅为60%。 Softchoice公司思科部门业务主管大卫魏格…

深度装机大师一键重装_笔记本怎么重装系统?笔记本自己如何重装系统?

如何给笔记本重装系统呢?笔记本系统使用时间长了难免会运行缓慢,我们第一反应就是重装系统笔记本了。但是很多小白用户们就惆怅了,不知道笔记本怎么重装系统,怎么进行重装系统笔记本呢?首先,笔记本电脑可以重置系统,…

XMLHttpRequest状态码及相关事件

1.创建一个XMLHttpRequest对象 2.对XMLHttpRequest对象进行事件的监听(定义监听事件的位置不影响 3.对XMLHttpRequest对象的状态码 状态 名称描述0Uninitialized初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置1Open open() 方法已调用,但是 send()…

人工智能时代号角已吹响 COMPUTEX如何凝聚AI这股力量?

当前谈到人工智能(AI),或许大家最直接的反应是Google的AlphaGo,但比起“遥不可及”的围棋机器人,其实AI早就融入人们生活,就像苹果手机中的语音助手Siri,如此“平易近人”。从自动驾驶、机器人、…

unity开宝箱动画_[技术博客]Unity3d 动画控制

在制作游戏时,导入的箱子模型本身自带动画。然而,它的动画是一个从打开到关闭的完整过程,并且没有给出控制打开关闭的方法。最直接的想法是对该动画进行拆分,再封装成不同的动画状态,但是不巧的是,这个动画…

如何把一个软件嵌入另一个软件_自动化正在成为一个“软件”行业

摘要在智能制造时代,自动化行业正在成为一个软件行业,它正在改变着整个产业的未来,也将为制造业带来更为广阔的空间。自动化正在成为一个“软件”行业,在智能时代,软件正在成为自动化行业竞争的关键。自动化已然成为软…

python怎么显示求余的除数_Python算术运算符及用法详解

算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了 Python 支持所有基本算术运算符。表 1 Python 常用算术运算符运算符说明实例结果加12.45 1527.45-减4.56 - 0.264.3*乘5 * 3.618.0/除法(和数学中的规则一样)7 / 23.5//整除…

HTML td 标签的 colspan 属性

表格单元横跨两列的表格&#xff1a; <table border"1"><tr><th>Month</th><th>Savings</th></tr><tr><td colspan"2">January</td></tr><tr><td colspan"2">Fe…