postman入门

本文详细介绍了Postman的使用,从接口测试的基础概念、分类,到Postman的安装、基本界面、环境变量、接口关联、断言、批量运行、文件上传、Mock服务器和Cookie鉴权等关键功能。此外,还探讨了Postman的加密解密、Newman命令行工具以及与Jenkins的集成应用。

目录

一、接口测试

1、简介:

2、分类:

3、测试流程和测试用例

4、postman安装

5、基本界面

6、项目流程

7、环境变量和全局变量

8、接口关联

json提取器实现接口关联

使用正则表达式提取器实现接口关联

9、postman内置动态参数以及自定义动态参数

内置动态参数

自定义动态参数

10、文件上传

11、断言

12、批量运行测试用例

13、必须带请求头的接口

14、postman接口mock服务器

15、cookie鉴权

原理:

分类:

16、postman加密和解密

17、Newman

18、postman+newman+Jenkins


一、接口测试

1、简介:

接口测试是测试系统组件接口之间的一种测试。主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口

2、分类:

一般分成四种:内接口(client-server)、对外服务接口(client-server)、数据库接口(server1-server2)、mock接口(server-database)。

测试外部接口:测试被测系统与外部系统之间的接口(一般测试用例只写正例)。

测试内部接口:

1)内部接口只提供内部系统使用(一般测试用例只写正例)

2)内部接口提供外部系统使用(测试用例需要写的全面,正例,各种异常场景,权限控制等)

3、测试流程和测试用例

1)拿到接口api文档(一般会得到接口文档,如果没有可以通过抓包工具获得)熟悉接口业务、鉴权方式、入参、错误码、返回参数

2)编写接口用例及评审

思路:

正例:输入正常入参,接口能返回数据

反例:

a.鉴权反例:鉴权码为空、鉴权码错误、鉴权码过期、失效等等

b.参数反例:参数为空、类型异常、长度异常

c.错误码覆盖:根据具体业务而定

d.其他:接口黑名单、调用次数限制、分页场景

3)使用接口测试工具postman执行接口测试

4)Postman+Newman+Jenkins实现持续集成,输出测试报告,发送邮件。

4、postman安装

到官网安装-注册登陆。

Download Postman | Get Started for Free

5、基本界面

Home主页

Workspaces工作空间

1)collection集合 项目集合

2)Apis api文档

3)Environment 环境变量,全局变量

4)Mock server 虚拟服务器

5)Monitor 监听器

6、项目流程

1)首先在collection,填写项目名称

2)右键创建请求 Add requests

请求页签:

        params:get请求传参

        authorization:鉴权

        headers:请求头

        Body:post请求传参

                none:无参数

                form-data:既可以传键值也可以文件

                x-www-form-urlencoded:只能传键值对参数

                raw:json,text,xmlm,html,javascript

                binary:把文件以二进制传参

        pre-quest script:请求之前的脚本

        Tests:请求之后的断言

        cookie:用于管理cookie信息

响应页签:

        Body:接口返回数据

                pretty:以json、html、xml、等不同方式查看返回数据

                raw:以文本方式查看

                preview:以网页的方式查看

cookies:响应cookie信息

headers:响应头

Test Results:断言的结果

右边👉200(状态码)、OK(状态信息)、XXX(相应时间)、XXXB(响应字节数)、Save response(保存响应)

7、环境变量和全局变量

环境变量:环境变量就是全局变量

全局变量:全局变量可以再任何接口访问的变量

获取环境变量和全局变量的方式{{变量名}}

8、接口关联

json提取器实现接口关联

在Tests中(在第一个接口)

var result=json.parse(responseBody);#转换成对象

pm.globals.set("参数",result.键值);#设置为全局变量

{{参数}}在第二个借口提取

使用正则表达式提取器实现接口关联

var result=response Body.match(new RegExp(‘把整个左右边界复制下来,需要的地方改成正则’));

pm.globals.set(“参数”,result[1]);

9、postman内置动态参数以及自定义动态参数

内置动态参数

{{timestamp}}:生成当前时间的时间戳

{{randomint}}:生成一个0-1000的随机数

{{$guid}}:生成速记guid字符串

自定义动态参数(pre-request script里面写(请求之前的脚本))

自定义动态参数

var times=data.now()

pm.globals.set("参数",times);#全局变量

10、文件上传

首先在setting里面,允许打开工作路径

body中form_data选择file,直接在目录下选择要上传的文件

11、断言

status code:code is 200

response body:contains string:包含指定字符串

response body:json value check:包含json值

response body:is equal to a string:等于一个字符串

response headers:content-type:是否包含响应头content-type

response time is less than 200ms:请求少于200ms

断言的结果在Test results中查看

状态码断言:状态码

业务断言:包含某个字符串

在断言中获取自定义参数的方式

1)pm.globals.get("参数名")

2)globals.参数名

3)globals(参数名)

在断言中获取文件的方式

data.对象名

全局断言:

项目...下拉edit中

在test中添加响应码200断言

12、批量运行测试用例

项目。。。选择Run collections

右侧的页签:

iteration 1 迭代次数

Delay 0 延迟

Run(运行)

13、必须带请求头的接口

需要在headers中添加请求头(不添加无法得到正确响应)

常见的请求头:

Host:请求主机地址

connection:连接方式

Accept:客户端收到的请求格式

X-Requested-With:异步请求

content-type:请求内容格式

user-agent:客户端的用户类型

cookie:cookie信息

referer:来源

14、postman接口mock服务器

mock(模拟)

一般用于后端端口没开发完,前端业务需调用后段接口

mock server创建完会自动生成环境变量和collections

前端需要什么数据,在default的body中写什么数据

15、cookie鉴权

原理:

当客户端第一次访问服务器,那么服务器就会生成cookie信息,并且在响应头的set-cookie里面把生成的cookie信息发送给客户端

当第二次访问服务器的时候,就会在请求头的cookie带上cookie信息,从而实现鉴权

分类:

会话cookie:保存在内存,当浏览器关闭之后自动清楚cookie

持久cookie:保存在硬盘,当浏览器关闭中后不会自动清除cookie,只有当失效时间到了才会自动清除

16、postman加密和解密

目前市面上的加密方式:

对称式加密:DES、AES、Base65加密算法

非对称式加密:双钥加密、RSA加密算法

不考虑解密:MD5,SHA1.SHA3

postman的MD5加密方法

CryptoJs.MD5(“”).tostring().toUpperCase

17、Newman

专门为postman而生,可以让postman脚本通过非gui(命令行)的方式

运行命令:Newman Run

常用参数:

-e等同于--environment:后面跟环境变量文件

-g等同于--globals:后面跟全局变量文件

-n等同于--iteration-count:设置迭代次数  postman参数化迭代测试

-d等同于--iteration-data:指定用于迭代的数据源文件

-r等同于--reporters:后面跟数据结果,可以跟cli、html、json等

cli:直接在命令行打印结果

html:将结果生成为html文件,指定生成到具体目录需要配合--reporter-html-export 文件名使用

json:将结果生成为json文件,指定生成到具体目录需要配合--reporter-json-export 文件名使用

执行命令:Newman run testcase.json -e environment.json -g globals.json -r cli,json,html --reporter-html-export report.html

18、postman+newman+Jenkins

1)新建项目

2)设置自定义空间

3)执行window的批处理命令(execute windows batch command)

4)执行系统的groovy脚本(保持样式不丢失(execute system groovy script))

5)生成html报告集成到Jenkins(Publish html reports)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值