一口气学完Jmeter

40 阅读3分钟

哈喽哈喽,这里是小菜不拖延博主,是的,博主还没有找到工作,于是又开始学测试了,让我们一起来学测试吧

概念

进程

  • 正在执行的程序,每一个进程都有自己独立的内存空间
  • pyhton使用multiprocessing来创建进程

线程

  • 进程的执行单元,可以共享进程的内存空间
  • python使用threading来创建线程

Jmeter概念

线程组

  • setUp线程组:最先执行的线程组
  • tearDown线程组:最后执行的线程组

利用csv文件进行批量操作

  • 添加http请求头信息设置,application/json;charset=utf-8
  • 添加csv数据文件设置——————如下图,需要设置的部分 image.png

image.png

  • 新建.txt文件,按照数据库字段顺序写值就好,数据中间记得分隔符(什么都行),回车就是一条数据。保存的编码必须为utf-8
  • 请求体部分将具体的值写成我设置的csv变量名称

image.png

实操: 记得设置下面的操作,让文件可以自动读取完数据之后不再请求,否则就会一直循环直到你手动取消 image.png

image.png

用户参数

数据保存在jmeter当中 image.png 需要在线程组当中设置线程数,而不是像csv操作那样设置循环次数

image.png

计数函数

将生成的代码复制到想要使用的位置 image.png

直连数据库

就是可以直接操作数据库

  • 添加jar包

image.png

  • 添加jdbc请求和设置

image.png 严格按照这个格式,在下方记得选数据库类型 image.png

image.png 操作

image.png

断言

让程序代替人工判断响应结果是否符合预期

分类

  • 响应断言:断言状态码和响应体
  • 大小断言:判断响应内容的字节长度
  • 断言持续时间:判断响应时间

操作

  • 按照之前的正常操作添加
  • 给取样器添加断言
  • 看断言结果

image.png

逻辑控制器

if控制器

框里写判断条件,注意格式 image.png

关联

xpath提取器 image.png image.png

  • 缺省值就是没有匹配到给一个默认值 image.png

正则表达式 可以处理请求到的数据,拿到数据进行操作

image.png

跨越线程组进行关联

设置全局变量

  • 先设置函数
  • 将生成的代码粘贴到BeanShell提取器当中

image.png

image.png

获取全局变量 image.png

高并发

同步计时器

这里可以模仿同时请求

image.png 记得线程组里面的线程数也需要修改 image.png

使用聚合报告查看请求结果

高频率

使用常数吞吐量定时器

  • QPS: ==次/s
  • 目标吞吐量==每分钟的吞吐量
  • 循环次数==访问频率*访问时间 image.png

image.png

分布式

image.png image.png

  • 继续开启我其他执行机的,jmeter.bat使其处于运行状态

image.png

生成图形化报告

将要生成报告的测试复制到bin下面,然后运行第二张图的命令(因为没有将jmeter设置成环境变量,所以我们只能在bin下面运行他的脚本生成报告) image.png

image.png