Jmeter

  1. JMeter 自带的 HTTP(S) Test Script Recorder(HTTP(S) 测试脚本录制器)的基本使用教程:
    1. 启动 JMeter:打开 JMeter 应用程序。
    2. 添加线程组:在测试计划下添加一个线程组。
    3. 可以增加一些过滤条件,过滤掉不需要的请求
    4. 配置 HTTP(S) Test Script Recorder: - 在工作台中,右键单击“非测试元件”,选择“HTTP(S) Test Script Recorder”。 - 设置端口号(默认 8080),可以根据需要修改。
    5. 配置浏览器代理: - 在浏览器中设置代理服务器,地址为本地地址(127.0.0.1),端口为刚才设置的 JMeter 录制器端口。
    6. 启动录制:在 JMeter 中点击“启动”按钮开始录制。
    7. 在浏览器中进行操作:访问需要录制脚本的网站,进行一系列操作。
    8. 停止录制:操作完成后,在 JMeter 中点击“停止”按钮。
    9. 查看录制的脚本:在录制器中可以看到录制到的请求,可进行整理和修改。 需要注意的是,录制后的脚本可能需要根据实际情况进行一些调整和优化,以确保测试的准确性和有效性。
  2. 用法
    • 在Jmeter-http默认请求值中,设置超时时间,当请求超出你规定的时间时,在结果树中会标红
    • 在线程组中设置虚拟用户数量,执行脚本,可以在聚合报告中查看其各种指标,例响应时间,吞吐量等
  3. 逻辑控制器:
    • 事务控制器(将多个接口设置为一个事务,聚合报告中的tps和响应时间等会按照事务来计算)。
    • 仅一次控制器,常用于登录接口,因为通常只登录一次,一个虚拟用户登录一次
    • 吞吐量控制器:发帖的数量一定比回帖的数量少,所以,可以给发帖增加吞吐量控制器,使其只执行20%,即100个请求里,只20个发帖请求。注:不可以将回帖设置为500%,不好用的
  4. 定时器:
    • 固定定时器:像不能在短时间内频繁请求的接口,加上定时器,在一定时间间隔再次发送请求
    • 统一随机定时器:两个变量,一个定时,一个随机,例定时3s,随机5s,则在3s和8s之间
    • 高斯随机定时器:有个定时,一个偏差
  5. 集合点(同步定时器)

    按照虚拟用户数来执行,是没有实现并发的,并发需通过同步定时器来实现

    集合点的含义:当Jmeter生成的虚拟用户数量达到设置的触发集合点的数量时,该数量的虚拟用户同时发送请求,达到并发的效果

    也可设置超时时间:即如果在该时间内,Jmeter没生成预设的虚拟用户的数量,也进行同步并发请求

  6. 插件

    安装插件后,运行脚本,可自动生成tps和响应时间等波动图

  7. 组件执行顺序:

    1.测试计划:起点

    2.线程组:

    3.配置原件

    4.前置处理器:

    5.逻辑控制器:单次请求,循环请求,判断请求

    6.定时器:固定定时器,高斯,随机

    7.取样器:请求,http,tcp,jdbc

    8.后置处理器:

    9.断言:

    10.监听器:收集测试结果

  8. 作用域

    兄弟节点,父节点,兄弟下的子节点

  9. 关联接口测试

    上一个接口的返回值,是当前结果的请求参数

  10. 正则表达式提取器

    token为自定义名称

    正则表达式,确认提取规则

    模板固定

    匹配数字为你想要的match数组下标

    下一个接口的请求参数值可以填${token},自动带入。

  11. 测试片段:

    用户定义的变量:

    将可能会修改的值定义到其中,(类似nacos),其实就是配置,常配置量包括端口号,服务网址。

    具体接口使用${port}引用

    注意:Jmeter中是从上到下执行,定义变量一定要放在前面

  12. CSV数据文件设置:

    测试用例写在一个csv文件中(lisi,12345),新建一个CSV数据文件设置,在其中设置测试用例的变量的格式(如username,pwd),在http请求中,将变量用${username}代替。

    当其中有多组数据时,添加循环控制器。

    有多组数据时,用循环控制器遍历里面的数据。

  13. 断言:

    在请求下面新增断言,采用json断言,取值方式:$.data.xxx,下方填入预期结果。

    预期结果也可写在csv文件中,不同数据值不同。

  14. 解决关联接口问题:

    后置处理器中的Json提取器,提取规则$.data.token

    赋值规则,随便起名

    整个Jmeter中都可以使用已赋值变量,包括名称

  15. Jmeter连接数据库

    测试计划下,JDBC Connection Configuration,填写自定义名称,用户名,密码,driver class,url

    在测试计划中,添加jar包。

    在线程组中添加JDBC Request,编写sql语句,将查询行与下方命名一一对应。

    断言时引入变量名称即可,变量名称一般为数组,要加_1。

  16. 随机抽取数据:

    采用order by rand(),id取${ids_1}

    如果参数中想使用${ids_2}....循环10次

    引用计数器,写引用名称n。

    但是两个变量无法直接拼接,需要用到__V函数,在最上方工具中,他会告诉你最终格式。

    例:${__V(ids_${n})}
    
  17. 调试取样器:

    遇到问题时使用,出现全部变量信息。

  18. 加密接口

    将入参和出参全部使用算法进行加密。

    客户端一开始并不知道怎么加密,它先发送一次请求到服务端。

    不安全是因为,证书机构是公开的,黑客可以伪造客户端获取加密算法,不安全。

    外项目访问我们的接口,需要给他一段密钥,我们将这个密钥记录到数据库中,首先验证格式。调用我们接口,

  19. Jmeter测试加密接口

    新增http请求,访问https://www.lddgo.ne,获取加密后的值。

    再调用接口。

posted @   疯啦吧你  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示