Postman使用

接口测试准备

  1、项目部署

  2、查看接口文档

  3、设计和编写测试用例

  4、执行测试用例

  5、接口缺陷管理与跟踪

1、项目部署

  所需文件下载:https://lyang.lanzoui.com/iSjApr9i9ra

学生管理系统环境搭建

  1、根据素材 学生管理系统项目 中的启动说明进行操作

    安装python环境 推荐python3.5以上版本

    安装依赖模块:pip install -r requirements.txt -i https://pypi.douban.com/simple

    启动命令:python run_server.py

    默认端口是8000,地址本机ip

  2、测试环境是否正确

    浏览器输入 http://127.0.0.1:8000/api/departments/ 只要有相关数据即可

提示:使用sqlitestudio工具打开sqlite3数据库查看对应的数据

2. 查看接口文档

  说明:这里只展示了部分接口,具体的接口信息以开发的接口文档为主。

3. 设计和编写测试用例

4. 执行测试用例

  根据编写好的测试用例进行执行,验证功能是否满足需求。

5. 接口缺陷管理与跟踪

  在执行测试用例时,实际结果与预期结果不符时,则需要向开发提bug,待开发修复后,测试再进行回归测试,验证bug是否解决,如果解决则关闭该bug,否则重新打开,留意跟踪该bug,直到正确修复为止。

Postman介绍

  Postman是一款非常流行的接口调试工具,它使用简单且功能强大。在企业中,不仅测试人员会使用,而且开发人员也会经常使用。

Postman主要特点:

  • 简单易用的图形化界面
  • 可以保存接口请求的历史记录
  • 使用测试集Collections可以更有效的管理组织接口
  • 可以在团队之间同步测试接口,对测试接口可以进行导出和导入

Postman下载及安装

  postman官网下载地址: https://www.postman.com/downloads/

postman 的入门示例

  需求:使用postman访问百度http://www.baidu.com,并查看响应结果

实现步骤:

  • 新增测试接口页面
  • 设置请求方式
  • 输入接口地址
  • 点击发送请求
  • 查看响应结果

postman的基本使用

postman的基本使用 - 查

案例:
  需求:

    访问百度的搜索接口,通过查询字符串的方式传递搜索的关键字python,并查看响应结果
    请求路径:http://www.baidu.com/s?wd=python

  实现方式:

    请求方式:GET
    请求路径:http://www.baidu.com/s
    传参方式:查询字符串(wd=python)

  实现步骤:

    新增测试接口页面
    设置请求方式为GET
    输入请求路径
    设置请求数据(查询字符串)
    点击发送请求
    查看响应数据

postman的基本使用 - 增

案例
   需求:

     根据学生管理系统的接口文档,增加一条学生信息

   实现分析:

     请求方式:POST
     请求路径:http://127.0.0.1:8000/api/departments/
     请求数据:请求体-JSON提交

{
    "data":[
        {
            "dep_id":"T05",
            "dep_name":"java学院",
            "master_name":"Test-Master",
            "slogan":"好好学习,天天向上"
        }
    ]
}

   实现步骤:

     新增测试接口页面
     设置请求方式为POST
     输入请求路径
     设置请求数据(请求体-JSON提交)
     点击发送请求
     查看响应数据
     查看数据库中相应信息

postman的基本使用 - 改

案例
   需求:

     根据学生管理系统的接口文档,将dep_id为T01的学员的学院名称改为软策教育

   实现分析:

     请求方式:PUT
     请求路径:http://127.0.0.1:8000/api/departments/T01/
     请求数据:请求体-JSON提交

{
    "data":[
        {
            "dep_id":"T01",
            "dep_name":"软策教育",
            "master_name":"王大嘴",
            "slogan":"嘴大吃四方"
        }
    ]
}

   实现步骤:

     新增测试接口页面
     设置请求方式为PUT
     输入请求路径
     设置请求数据(请求体-JSON提交)
     点击发送请求
     查看响应数据
     查看数据库中相应信息

postman的基本使用-删

案例

   需求:

     根据学生管理系统的接口文档,将dep_id为T111的学员数据删除

   实现分析:

     请求方式:DELETE
     请求路径:http://127.0.0.1:8000/api/departments/T111/

   实现步骤:

     新增测试接口页面
     设置请求方式为DELETE
     输入请求路径
     点击发送请求
     查看响应数据
     查看数据库中相应信息

全局变量&环境变量

环境变量

  在实际的测试过程中,我们拥有测试环境和生产环境,此时我们设置两个环境变量,分别是测试环境变量和生产环境变量,方便我们能够在不同环境下进行测试。

  说明: host变量表示测试环境的ip地址+端口号。

添加环境变量:

   环境变量使用操作示例:
   切换到指定的环境
   通过来获取设置环境变量的值
   这里我设置的是host变量名

全局变量

  接口在任何环境下都可以引用的变量

添加全局变量:

   全局变量使用操作示例:
   访问全局变量的方式和访问环境变量的方式一样,都是通过来完成
   不受环境影响(在测试环境和生成环境下都能使用全局变量)

Postman的高级用法

测试集

测试集实现步骤:

  1. 创建测试集 - New Collection

    Collection可以理解成一个项目,这个项目下可以包含多个模块

  2. 创建目录 - Add Folder

    Folder 可以理解成项目中的模块,好比一个文件夹。

  3. 添加请求 - Add Request

    在每个模块中添加接口请求

  4. 保存请求 - SAVE REQUEST

Postman断言

  断言:让程序判断预期结果和实际结果是否一致。

Postman断言使用说明:

   postman的断言是使用JavaScript语言编写的,写在"Tests"标签里。

   Tests中的脚本在发送请求之后执行,会把断言的结果(PASS/FAIL)最终在"Test Results"标签页中展示

   Postman断言的具体使用:

​ 选择断言代码片段

   在Tests输入框的右侧配置了一些常用的断言代码片段,点击后自动填写到Tests输入框中。

​ 断言代码片段介绍

   Status code:Code is 200

// 判断响应状态码是否为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

Response body:Contains string

// 判断响应体中是否包含指定的字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

Response body:Is equal to a string

// 判断响应头数据是否等于指定的字符串
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

Response body:JSON value check

// 校验响应的json数据
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    // 比如: 获取学生管理系统中的所有departments信息 
    // jsonData对象来获取count属性,判断是否等于31
    pm.expect(jsonData.count).to.eql(31);
});

Response hearders:Content-Type header check

// 判断响应头中是否包含指定的头信息
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

测试结果:

  PASS:通过

  FAIL:失败

Postman关联

  当请求之间有依赖关系,比如上一个请求的结果是另一个请求参数,此时就需要用到关联处理。

实现方式

  要获取某个请求的响应结果数据,可以通过在"Tests"标签页中编写JavaScript脚本来实现

// 获取json格式的响应数据
var jsonData = pm.response.json()

  定义变量接收从响应数据中取出的值

// 定义变量,接收cityvar city = jsonData.weatherinfo.city;

  多个请求之间可以使用全局变量来传递数据

// 把数据保存到全局变量中pm.globals.set('city', city);

获取某个全局变量的值:

  案例

    请求获取天气的接口: http://www.weather.com.cn/data/sk/101010100.html

    获取返回结果中的城市名称

    调用百度搜索接口: http://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数

​ 实现步骤截图

    1、在第一个请求的"Tests"标签页中编写Javascript脚本
    2、在第二个请求中使用全局变量

批量执行测试用例:
  要想批量执行测试用例,需要先把接口请求添加到测试集中,使用运行测试集的方式就可以实现批量运行测试用例。

​ 操作步骤:

   1、点击测试集中的"Run"按钮,批量运行测试用例
   2、弹出Collection Runner窗口,点击运行按钮
   3、查看测试结果

接口参数化

  应用场景:在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要 不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目的是为了模拟真实的用户场景,需要模 拟不同的账号,这里就需要参数化的过程, 还有批量添加一些有效的部门信息,也可以使用接口参数化

实现步骤:

  1、新建csv文件,填入数据

    注意:用文本编写csv文件时使用“,”进行分隔

  2、运行测试用例时,在Data中选择上传文件

Postman测试报告

Newman

  Newman是一款基于nodejs开发的可以运行Postman脚本的工具,并可以生成测试报告

环境准备

安装nodejs

  下载地址:http://nodejs.cn/download/

  如果下载的是安装包,下载后双击安装即可

  如果下载的是压缩包(.zip),解压到某个目录后,需要配置环境变量

  校验:打开cmd,输入node -v,看到输出node的版本信息,即代表安装成功

安装newman

  打开cmd输入 npm install -g newman

  校验:安装完成后,输入newman -v 命令查看版本信息,检测是否安装成功

安装 newman-report-html

  打开cmd输入 npm install -g newman-reporter-html

导出测试用例集数据

  选择对应的测试集右击选择Export进行导出

执行测试

  使用newman命令,运行导出的测试集脚本,打开cmd输入 newman run demo.json -r html --reporter-html-export report.html

查看测试报告

  命令运行完成后,如果不设置 --reporter-html-export参数,会在当前目录下生成一个名字为newman 的文件夹,打开就可以看到生成的html测试报告

原文地址:https://www.cnblogs.com/lyang-a/p/15026710.html