接口自动化( 一 Postman)

如需有需要了解接口测试面试的话,我的博客中有写到,接口测试面试题

(一)介绍

如何用Postman做接口自动化测试

  • (一)介绍
    • 简介
      • 自动化测试分类
      • 为什么需要自动化测试
      • postman的特点
      • postman软件功能
  • (二)postman接口测试
    • postman怎么测试接口
      • 1、get请求
      • 2、post请求
      • 3、带cookie的请求
      • 4、带Header的请求
      • 5、文件上传的请求
      • 6、如何发送json参数
  • (三)postman接口自动化
      • postman说明
      • postman如何实现接口自动化测试
  • (四)变量
      • 定义变量
      • 获取变量
      • 登录中的{ {username}} 、{ {password}} 赋值操作
      • 登录常遇到的sql注入

简介

postman 是一款强大网页调试工具的客户端,postman为用户提供强大的 Web API & HTTP 请求调试功能。postman能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT…),附带任何数量的参数+ headers,是一款非常实用的调试工具

自动化测试分类

  1. 按测试目的分类:
    功能自动化测试
    性能自动化测试
    按测试对象分类
  2. 按测试对象分类
    Web应用测试
    APP测试
    接口测试
    单元测试

为什么需要自动化测试

可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在用例设计和新功能的测试上

可以大幅度提升回归测试的效率,非常适合敏捷开发过程

可以更好地利用无人值守时间,去更频繁地执行测试

可以高效实现某些手工测试无法完成或代价巨大的测试类型,例如:7*24小时持续运行的系统稳定性测试和高并发场景的压力测试

可以保证每次执行的操作具有一致性和可重复性,不会受人的感情因素影响

postman的特点

  • 支持各种的请求类型: get、post、put、patch、delete 等
  • 支持在线存储数据,通过账号就可以进行迁移数据
  • 很方便的支持请求 header 和请求参数的设置
  • 支持不同的认证机制,包括 Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0 等
  • 响应数据是自动按照语法格式高亮的,包括 HTML,JSON 和 XML

postman软件功能

1、模拟各种HTTPrequests

从常用的GET、POST到RESTful的PUT、DELETE…等等。甚至还可以发送文件、送出额外的header

2、Collection功能(测试集合)

通过collection的归类,我们可以良好的分类测试软件所提供的API.而且Collection还可以Import或是Share出来,让团队里面的所有人共享你建立起来的Collection

3、人性化的Response整理

一般在用其他工具来测试的时候,response的内容通常都是纯文字的raw,但如果是JSON,就是塞成一整行的JSON。这会造成阅读的障碍,而Postman可以针对response内容的格式自动美化。JSON、XML或是HTML都会整理成我们可以阅读的格式

4、内置测试脚本语言

支持编写测试脚本,可以快速的检查request的结果,并返回测试结果

5、设定变量与环境

Postman可以自由设定变量与Environment,一般我们在编辑request,校验response的时候,总会需要重复输入某些字符,比如url,允许我们设定变量来保存这些值。并且把变量保存在不同的环境中

(二)postman接口测试

postman怎么测试接口

接口测试请求分为多种情况,这里介绍get、post、带cookie、带Header、上传文件五种请求的测试。

1、get请求

get请求是最简单的请求方式,输入URL就能完成

1、新建一个tab页面

2、输入URL ,选择请求方式为GET

3、点击“send”按钮

4、查看返回码是否异常。

2、post请求

post请求跟get的区别除了请求方式不同之外,还需要添加请求体,请求体内容多半为json格式

1、新建一个tab页面

2、输入URL ,选择请求方式为POST

3、输入请求体内容

4、点击“send”按钮

5、查看返回码,返回信息等

3、带cookie的请求

该请求需要在Heards里面添加Cookie

1、新建一个tab页面

2、输入URL ,选择请求方式为POST

3、输入请求体内容

4、在Heard里面添加Cookie信息

5、点击“send”按钮

6、查看返回码,返回信息等

4、带Header的请求

该请求需要在Heards里面添加Cookie

1、新建一个tab页面

2、输入URL ,选择请求方式为POST

3、输入请求体内容

4、在Heard里面对应的内容

5、点击“send”按钮

6、查看返回码,返回信息等

5、文件上传的请求

发送请求前需要先上传文件

1、新建一个tab页面

2、输入URL ,选择请求方式为POST

3、输入请求体内容,文件内容选择file, 选择本地的文件上传

4、点击“send”按钮

5、查看返回码,返回信息等

6、如何发送json参数

1、在地址栏里输入请求url

2、接着选择“POST”方式。

3、在“headers”添加key:Content-Type , value:application/json

4、然后点击"body",’‘raw’'并设定为JSON。

5、接着添加:{“userid”: 1}

6、最后点击send发送即可

(三)postman接口自动化

postman说明

平时可能大家只是简单用postman来看一些请求返回的数据。其实它还具有很强大的接口自动化测试功能,它其实自己就提供了一个框架,它是采用js脚本编写的,这几天我看视频学习,现在整理一下,关于如何使用postman进行接口测试

postman如何实现接口自动化测试

1、新建一个接口,百度搜了一个歌名查询的,https://api.apiopen.top/searchMusic?name=XXX

在postman中运行
接口自动化( 一 Postman)_第1张图片
2、VALUE使用参数化,方法:{ {参数化的名称}},后面test.txt中的name
接口自动化( 一 Postman)_第2张图片
3、新建一个文件夹test,将接口保存进去
接口自动化( 一 Postman)_第3张图片
接口自动化( 一 Postman)_第4张图片
4、新建一个test.txt,存在D盘下,中间以英文逗号隔开,格式如图
接口自动化( 一 Postman)_第5张图片
5、点击postman左上角的runner,并选中测试的接口
接口自动化( 一 Postman)_第6张图片
接口自动化( 一 Postman)_第7张图片
接口自动化( 一 Postman)_第8张图片6、批量执行测试,查看执行结果
接口自动化( 一 Postman)_第9张图片
接口自动化( 一 Postman)_第10张图片7、如何添加检查点
关掉collection,回到Postman主界面,进入Tests界面,右侧提供了很多检查函数
接口自动化( 一 Postman)_第11张图片
接口自动化( 一 Postman)_第12张图片
调试通过后,把所有的值都参数化
接口自动化( 一 Postman)_第13张图片
再次打开runner并根据上面的方法执行

(四)变量

定义变量

定义全局变量和环境变量
点击右上角的小齿轮,弹出如下界面,就可以根据需求定义全局变量或者环境变量了。
接口自动化( 一 Postman)_第14张图片
已经定义的全局变量和环境变量,可以进行快速查看
接口自动化( 一 Postman)_第15张图片
定义变量除了以上方式,还有另外一种方式

在URL,Params , Authorization , Headers , Body中定义:手工创建一个空的变量名在图中位置把想要的值选中右击,选中Set:环境|全局 ,选中一个变量名,点击后就会保存到这个变量中
接口自动化( 一 Postman)_第16张图片

在Tests,Pre-requests Script:
定义全局变量:pm.collectionVariables.set("变量名",变量值)
定义环境变量:pm.environment.set("变量名",变量值)
定义集合变量:pm.variables.set("变量名",变量值)

获取变量

定义好变量,接下来就可以使用变量了

如果在请求参数中获取变量,无论是获取全局变量,还是环境变量,还是集合变量,获取的方式都是一样的编写规则:{ {变量名}} 。

请求参数指的是:URL,Params , Authorization , Headers , Body
如果是在编写代码的位置(Tests,Pre-requests Script)获取变量,获取不同类型的变量,编写的代码都不相同,具体如下:

获取环境变量:pm.environment.get(‘变量名’)
获取全局变量:pm.globals.get('变量名')
获取集合变量:pm.pm.collectionVariables.get.get('变量名')

接口自动化( 一 Postman)_第17张图片

登录中的{ {username}} 、{ {password}} 赋值操作

现在登录的账号和密码参数都是写死的,也就是不管执行多少次,都是拿一个账号去测试。 先简单讲一下在 Postman 中使用如何“变量”
接口自动化( 一 Postman)_第18张图片
引用一个变量的语法:{ {变量名}}, 将账户和密码字段的参数值都设置为变量:{ {username}} 、{ {password}} 。在 Pre-request Script 面板中进行赋值操作:

Pre-request Script 与 Tests 类似,区别在于:

Pre-request Script 中的脚本是在执行请求之前运行
而Tests 中的脚本则是在请求完成之后执行
所以,可以在 Pre-request Script 功能区中用脚本先个上面两个变量进行赋值,如:

//设置全局变量
postman.setGlobalVariable("username", "test1");
postman.setGlobalVariable("password", "12345689");

==但是用 Pre-request Script 进行赋值操作仍然不能解决我们的问题,因为按照这种写法,不论运行多少次其实都还是用固定(写死)的数据进行测试,这个问题后续再讲

登录常遇到的sql注入

4、登录时,用户名输入:admin’#
密码任意输入:abc
登录成功,说明存在sql注入漏洞。
接口自动化( 一 Postman)_第19张图片

你可能感兴趣的:(接口测试,接口自动化)