jmeter接口测试

jmeter接口测试,第1张

准备

非必要环节,只需求jmeter可以跳过

python写了一个http后台,使用sqlite数据库,数据库表student(id, name),实现了增删改查

  • httper.py:进行数据库初始化

  • httper.py:http后台,增删改查逻辑,启动方式

    # 基于python3
    python httper.py 8088
    
  • readme.md:api文档

jmeter安装

(基于Mac,看起来mac、windows可以用同一个安装包兼容,下载包中也存在win下的启动方式(未验证))

需要安装Java环境(JDK、JRE),配置环境变量JAVA_HOME=xxx/jdk,可以在命令行执行java命令

下载jmeter安装包,https://jmeter.apache.org/download_jmeter.cgi ,

解压后进入到jmeter的bin下,./jmeter启动一下就行了,可以添加到环境变量

cd ${jmeter_path}/bin		# jmeter.bat是windowns下的启动脚本,在win下双击即可启动
./jmeter		# 会启动界面化的jmeter

为了避免每次启动时都需要进入的jmeter目录下,可以添加jmeter的bin目录到环境变量,在我这里是

export PATH=/Users/darcyzhang/Workspace/Wp_work/wp_others/apache-jmeter/bin:$PATH

如果需要jmeter语言为中文,可以通过修改配置文件 ${jmeter_path}/bin/jmeter.properties 实现

cd ${jmeter_path}/bin
vim jmeter.properties

```
language=zh_CN
# 据说有种问乱码的问题,修改默认编码方式
sampleresult.default.encoding=utf-8
```

重启jmeter
base demo

快速进行一个demo

  • 添加线程组

    参数取默认设置

  • 添加http请求

    配置访问接口的信息

  • 添加察看结果树

    参数去默认设置

  • 保存$运行

    运行需要先保存,保存会生成一个jmx文件,后面可以再次打开这个文件,也可以通过jmeter在命令直接运行该文件而不必打开jmeter UI界面。

    运行之后可以在 察看结果树 查看运行结果

常见jmeter元素
  • 测试计划

    就是测试计划,就是整个测试逻辑的根目录吧

    如果勾选了 独立运行… ,会串行执行测试计划下的线程组

  • 线程组

    线程组,可以为一个http请求设置多个线程,来完成多次循环或者高并发等

    setUp线程组,会在所有的线程组执行前执行

    tearDown线程组,执行在所有线程组执行之后

    在测试计划中添加线程组,可以添加多个

    • 线程数,就是线程数
    • Ramp-up时间,设3个线程,Ramp-up时间为60s,就会在60s内执行者三个线程,20s一个
    • 循环次数,循环执行n次
  • http请求

    在线程组下添加http请求,添加=》取样器=》http请求

  • 察看结果树

    用来展示请求结果,响应头、响应体

    察看结果树 可以添加在测试计划下,也可以添加在线程组下,添加线程组下则只能展示本线程组下的http请求的执行结果。

    添加=》监听器=》察看结果树

  • 断言

    就是对http结果的校验,可以校验响应头、响应体中的一些信息。断言不通过会在察看结果树中判定为错误请求。such as

  • http信息头管理器

    配置http请求的请求头(header),如Content-Type等

    可以添加在 线程组 下,也可以添加在 测试计划 下,添加位置决定了作用范围

    添加=》配置元件=》http信息头管理器

  • http请求默认值

    如果有多个http请求,请求有一些共同参数,可以通过http请求默认值实现

  • 正则表达式提取器

    从请求结果中提取信息,还有json提取器、边界提取器

    添加=》后置处理器=》正则表达式提取器

  • Beanshell取样器

    添加=》取样器=》Beanshell取样器

    一般用来设置全局变量

    # 通过jmeter中的内置函数
    ${__setProperty(global_var,${local_var},)}		# 设置全局变量
    

    语法可以在函数助手中查看,下面是一个设置全局变量的语法

    同理拿到使用设置的全局变量的语法

综合Demo

咱就做一个增删改查吧

  • 增加一条数据

    响应中包含新增的内容信息

  • 修改添加的数据

    响应中包含修改的内容

  • 查询修改的数据

    断言响应状态码==200

  • 删除添加的数据

    响应文本包括“删除成功”

测试逻辑保存的jmx:https://gitee.com/bbjg001/httper/blob/master/complex.jmx

主要逻辑

  • 从新增数据 请求结果中提取添加的id

  • 将提取的id设置为全局变量

  • 在后续请求 *** 作这个全局id

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/915898.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存