深圳幻海软件技术有限公司 欢迎您!

Jmeter落地接口测试的实现方案

2023-02-28

目前接口测试越来越重要,也普遍得到了各个公司的重视,通常开展接口测试的方案有:代码(java或者python),要求测试人员有基础的编码能力,实现有一定门槛。jmeter,绝大多数场景无需编码,另外便于直接对接口进行性能测试(增加线程组中的线程数即可)。自己研发的测试平台,大厂秀kpi的东东,普通公

目前接口测试越来越重要,也普遍得到了各个公司的重视,通常开展接口测试的方案有:

  • 代码(java或者python),要求测试人员有基础的编码能力,实现有一定门槛。
  • jmeter,绝大多数场景无需编码,另外便于直接对接口进行性能测试(增加线程组中的线程数即可)。
  • 自己研发的测试平台,大厂秀kpi的东东,普通公司不需要玩这个。

在这里我来讲解一下通过jmeter落地接口测试的方案,本文先介绍用例的设计逻辑,以及jmeter中一些相关的基础的技术点,下一遍文章会重点介绍如何通过git和jmeter-maven-plugin插件管理jmeter接口文档,敬请期待!

备注:本文默认读者了解接口测试的基础概念,能够对jmeter进行基础操控。

基础设计逻辑

应用为基础创建Jmeter脚本,即.jmx文件,一个人创建一个jmx文件(避免不熟悉git操作的同学多人协作时产生冲突)

各个模块进行细分,一个简单控制器就是一个模块(一个简单控制器中可以包括多个接口),如下图:

一个接口就是一个sampler(通常都是http类型接口),如下图:

每个接口都需要有响应断言来校验接口的返回值正确性(依赖接口文档)。

统一设计查看结果树和聚合报告,用来查看接口的执行结果。

整体用例组织结构,如下:

使用jmeter执行基础接口测试时,常用的知识点汇总如下:

  • 用户自定义变量。
  • 定义形式是:${变量名}。
  • 例如:/url&accessToken=${access_token}。

线程组>右键添加>配置元件>用户定义的变量,如下图:

以后再次调用时就可以使用${user}。

我们也可以把变量放到配置文件中,然后读取,具体方法如下:

线程组>右键添加>配置元件> CSV 数据文件设置,如下图:

设置完成后,就可以把文件中的变量赋值给user和password了,然后脚本中就可以进行引用了。

备注:

  • 再次循环 True:假设csv 文件共有 10 条记录,但是线程循环15次,执行 10 次后,重头开始循环。
  • 停止线程 False:,如果全部取完了想继续那就是True,如果想文件的数据用完就结束,比如注册不可以重复用,那就设置False。

默认请求

线程组>右键添加>配置元件>HTTP请求默认值。

设置的好处是,请求中不需要再设置ip和端口了,有利于在不同环境中的统一配置。

信息头管理器

线程组或者具体请求(作用域不同)>右键添加>配置元件>。

以json为例:

JSON Extractor

请求>右键添加>后置处理器> JSON Extractor。

例如响应:

{"status":200,"message":"","data":{"testCode":"95a9a6dfc3e5e8107523a782fc4cc55x","token":"00522794718a07fac56c7d18f2e8c9xy","refreshToken":"8e10d3a688a97bdecbb441a9590fa0zz","expires":604800}}
  • 1.

上图中的token代表着变量名称。

$.data.token 是固定写法,表示取响应中的data值中的token内容:

00522794718a07fac56c7d18f2e8c9xy,并把其赋值给变量token。