• 软件测试 - postman高级使用


    断言

    概念:让程序代替人判断测试用例执行的结果是否符合预期的一个过程

    特点:

    • postman断言使用js编写,断言写在postman的tests中

    • tests脚本在发送请求之后执行,会把断言的结果最终在testresult中进行展示

    • 常用的postman提供的断言片段有以下几个:

      • status code is 200:断言响应状态码是否为200
      • JSON value check:断言响应体json数据校验
      • contains string:断言响应体是否包含字符串
      • euqal to a string:断言响应体是否等于指定字符串

    案例:

    1. /* pm.test是postman内置对象pm对外提供的一种名称为test的方法,他的功能是使用pm.test来编写测试脚本时,即使方法内部处理内容出现错误也不会影响后续自动化脚本的运行。 */
    2. /* 断言响应状态码是否是200 */
    3. pm.test("响应状态码", function () {
    4.    pm.response.to.have.status(200);
    5. });
    6. /* 断言响应的json数据 */
    7. pm.test("Your test name", function () {
    8.    var jsonData = pm.response.json();
    9.    pm.expect(jsonData.message).to.eql("用户已存在");  /* jsondata就是后端返回给前端的json数据,是js中的对象,获取数据通过点点点的方式 */
    10. });
    11. /* "判断响应体是否和预期一致" */
    12. pm.test("判断响应体是否和预期一致", function () {
    13.    pm.response.to.have.body('{"code": 400, "message": "用户已存在"}');
    14. });

    请求前置脚本-Pre-request-Script

    概念:在postman的pre-request-script中,用于在请求发送之前做一些操作,比如设置环境变量或者全局变量

    全局变量和环境变量

    概念:

    • 全局变量:是全局唯一的,不可以被重复定义
    • 环境变量:可以有多套环境,如开发环境、测试环境、生产环境等,每个环境之间相互隔离,每个环境中可以定义多个环境变量,多个环境变量之间变量可以重复,但是一个环境变量内变量不能重复。
    • 注意:在使用环境变量时,postman必须现将环境切换到环境变量下才可以使用对应的环境变量,另外环境变量的优先级是高于全局变量的。

    设置变量:

    • 全局变量

      • 手动设置
      • 在请求前置脚本中通过代码设置。
      1. pm.globals.set("ip", "127.0.0.1");
      2. pm.environment.set("port", "8000");
    • 环境变量

      • 手动设置:需要先创建一个环境变量,然后在环境变量中进行设置
      • 在请求前置脚本中设置
      pm.environment.set("name", "aaa");

    获取变量:

    • 请求参数中获取

      • 获取全局变量/环境变量:{{变量名称}}
    • 代码中获取:在请求前置脚本中获取

      1. pm.globals.get("variable_key"); /*获取全局变量*/
      2. pm.environment.get("variable_key"); /*获取环境变量*/

    接口关联

    实际场景中,很多接口之间都是有关联的,意思就是另一个接口需要的数据来自于其他的接口,最典型的场景就是很多接口都需要登录才能够正常请求。

    实现接口关联的方式就是通过环境变量,步骤如下:

    • 在tests也就是请求之后执行的脚本中获取接口返回数据,获取接口返回数据var jsonData **=** pm.response.json();
    • 将需要的接口数据添加到环境变量中。
    • 在其他接口中使用环境变量即可。

    读取外部csv文件实现参数化

    当一个接口的测试数据非常多时,可以使用csv文件进行批量测试。

    首先需要准备csv文件。

    使用csv文件中的数据时,在请求中使用通过{{变量名}}直接使用,在代码断言中需要借助postman内置的data方法获取数据,比如data.passwddata表示的就是文件。

    在批量运行时,选择文件即可,postman会自动读取文件然后进行测试

    newman生成测试报告

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

    安装newman之前需要先安装node.js,安装完成之后在安装Newman,通过npm install -g newman进行安装,最后安装newman-reporter-html,同样通过npm install -g newman-reporter-html安装。

    安装完成之后,就可以使用newman生成测试报告了,生成测试报告步骤如下:

    • 导出测试集
    • 导出环境变量
    • 导出全局变量
    • 建议将这三个文件放在同一个目录下
    • 最后执行命令生成测试报告
    newman run 测试脚本文件 -e 环境变量文件 -g 全局变量文件 -d 测试数据文件 -r html --reporter-html-export report.html

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

  • 相关阅读:
    docker 中安装 MySQL 以及使用
    计算机毕设(附源码)JAVA-SSM基于智能推荐的胖达大码服装定制网
    应广单片机PMS150/PMC150/PMS150C消费类单片机
    交换机和路由器技术-28-OSPF的NSSA区域
    Stream流操作
    这些错误怎么解决?急
    常用的Python3关键词提取方法
    2024年华为OD机试真题-寻找最优的路测线路-Python-OD统一考试(C卷D卷)
    用户运营都做些什么?你需要知道这些
    干货分享 | GBase 8c 分布式核心技术初揭秘—CDC数据同步
  • 原文地址:https://blog.csdn.net/2301_78843735/article/details/136480124