postman自动化测试


postman做接口的自动化测试case

  • 记录一次自动化测试的工作,以及该过程中对于测试设计的一些思考。

postman工具

  • 简单介绍,这个工具无论是开发还是测试,使用来调试接口的时候非常便捷,具体的介绍文章后面附上相关较好的资源,通过平时日常的一个使用情况,简单记录该工具在用来做自动化测试的时候的一个示例。

测试文档编写与评审

  • 需求:依据提供给第三方平台的对接接口文档,设计与编写测试用例,以便快速验证接口的功能。此外,接口测试更多应集中在验证接口生效、接口对请求的参数的处理能力。
  • 设计用例:设计用例依据项目模块划分/以及为每个接口同组的请求(主要是get/post/put/patch/delete等五种类型请求方法),测试目的、测试设置、请求以及方法、请求参数都可以作为测试接口的输入,而接口返回响应则为预期结果,实际编写test用例时则可以依此输出作为判断结果。
  • 在设计过程中选择了如下形式对测试文档做出编辑,这里实际编写过程中仅仅对请求的方法、测试输入做了一个变量设置。
用例名称 接口名称 测试目的 测试设置 请求URL 请求方法 测试输入 测试输出
sys_getProject_post_valid_01 获取项目列表 post请求--获取项目列表 HTTP权限认证,账号:admin,密码123456 https://localhost:8888/XXX/v1/getProject post {"projectId":1} {"error_code"=200,"result"={XXXX}}
sys_getProject_get_invalid_01 获取项目列表 get请求--无法获取项目列表 HTTP权限认证,账号:admin,密码123456 https://localhost:8888/XXX/v1/getProject get {"projectId":1} {"error_code"=-811,"msg"="Method not allow"}
sys_getProject_get_invalid_02 获取项目列表 空参数--无法获取项目列表 HTTP权限认证,账号:admin,密码123456 https://localhost:8888/XXX/v1/getProject post {} {"error_code"=-810,"msg"="parameter invalid"}
... ... ... ... ... ... ... ...

接口测试代码的编写

  • 结构编排简单介绍:

    • 创建collection,将配置等信息在collection中进行配置,对于后续子文件等均可直接引用生效,子文件夹建立模块信息,存放相应的接口信息。这里也可以在environment中配置变量信息等,一般我只在所有项目通用的配置才考虑放入environment中。

    • 这里开始录入一个接口:注意依据项目中具体采用的认证方式配置Cookie或者Token等信息,body中写入传入的参数信息。

    • 依据返回的响应如下,编写测试用例如下,验证错误码返回结果、以及请求返回的服务器的项目是否与预期相符合(Tests栏这里写用例,Pre-Script这里写执行该脚本之前运行的脚本,比如先去获取全局变量中的某个参数等):

      var jsonData = pm.response.json();
      var projectId = pm.collectionVariables.get("projectId");
      pm.test("1错误码匹配", function () {
          pm.expect(jsonData.error_code).to.eql(0);
      });
      pm.test("2服务器项目匹配", function () {
          var dataObject = jsonData.result.list[0];
          var id =Object.entries(dataObject)[0]["projectId"];
          pm.expect(id == projectId);
      });
      
  • 运行测试用例结果如下,其中当用例都全部编码完成后,可以在collection级别中自定义 勾选用例用于执行:

结论

  • 接口自动化的优势,一是对于频繁提测的项目来说,使用接口自动化测试可以避免”点点点“的繁杂工作;二是可依据接口文档修改,有针对性的新增测试用例,便于维护;

  • 对于工具的介绍,这篇博客有专栏介绍了,剩下的问题也可以在官网上得到解答:https://blog.csdn.net/zhuyunier/article/details/87604371

  • 教程:《接口自动化测试持续集成》这本书上也对postman工具做了全面的介绍,并且拓展介绍了包括使用Github+jenkins+钉钉来持续集成一个完整的测试项目,后面有空自己部署来试试。