1、jmeter入门脚本

  步骤分析:测试计划(项目名称)-线程组(业务流程)-http请求(接口名称)-察看结果树
编写脚本四要素:测试计划、至少有一个线程组、至少有一个取样器、必须要有监听器
测试计划-->右键添加-线程(用户)-线程组-->在线程组上右键-添加-取样器-HTTP请求-->在线程组上右键-添加-监听器-察看结果树 **核心知识**
①在线程组上右键-添加-取样器-HTTP请求 (不会自动识别数据类型,需手动加http信息头管理器)

  ②在线程组上右键-添加-配置元件-http信息头管理器/http请求默认值
http信息头管理器:添加-输入名称和值(例:content-type:application/json)content-type请求参数的数据类型。
http请求默认值:将同一线程组下所有HTTP请求的协议和服务去域名统一管理,如果单个http请求设置了协议和域名则使用本身的,遵从就近原则。 tips:一般把配置元件放在前面,http协议默认端口号80 https协议默认端口号443

2、分析线程组

  设置调度器配置,需要将前面的循环次数设置为永远(自己感觉,因为这样才不会因循环次数不够而终止压测)
持续时间(秒):测试计划持续多长时间,会覆盖结束时间。
启动延迟(秒):测试计划延迟多长时间启动,会覆盖启动时间。

3、 测试计划元件

  取样器(sampler):向服务器发送请求并记录响应时间和响应内容
逻辑控制器(Logic Controller):包括两类元件,一类是用于控制testplan和sampler节点发送请求的逻辑顺序的控制器,如条件控制器,循环控制器等,另一类是用来组织可控制sampler节点的,如事务控制器,吞吐量控制器。
配置元件(config element):用于提供对静态数据配置的支持。用于参数化。
定时器(Timer):用于操作之间设置等待时间,等待时间使性能测试中常用的控制客户端QPS的手段。
前置处理器(PerProcessors):用于请求发送之前对即将发出的请求进行特殊处理。
后置处理器(PostProcessors):用于对sampler发去请求后得到的服务器响应进行处理。一般用来提起响应中的特定数据。
断言(assertions):
监听器(listener):

4、运行原理

  jmeter是以线程的方式运行的,由于jmeter是运行在jvm虚拟机上的,每个进程的开销比较大,如果以进程的方式来运行的话,每台负载机上的进程数里就不会允许太多,当我们需要大量并发时就需要大量的负载机,这显然是不经济的,再者Java也是支持多线程的,所以jmeter选择了以线程的方式来运行。

  jmeter通过线程组来驱动多个线程运行测试脚本对被测服务器发起负载,每个负载机上都可以运行多个线程组。jmeter运行场景不仅可以在GUI方式中完成,还可以使用命令行,而且命令行运行的方式对于负载机的资源消耗会更小。

  tips:GUI模式运行测试脚本对电脑本身的资源小号较大,无法实现大的并发和压力测试,使用命令行模式实现高并发和压力测试,使用GUI模式主要目的是编写和调试jmeter测试脚本。

5、使用jmeter自身代理录制移动端

  1.配置jmeter
打开jmeter创建新的测试计划,在测试计划下添加一个线程组,添加HTTP代理服务器(在测试计划上右键-添加-非测试元件-HTTP代理服务),配置HTTP代理服务器

  2.配置手机 和fiddler配置相同
模拟器为例,在手机设置中找到wifi,长按wifi修改网络,配置代理-设置服务器主机名(ip地址)和端口(默认端口号8888)

6、回顾接口测试知识

  接口要素:①请求地址/方式 ②请求参数 ③返回值

  http协议:请求方式 ①get(带参数 params/不带参数)  ②post(x-www-form-urlencoded 键值对 content-type:application/x-www-form-urlencoded; json格式数据 content-type:application/json)

7、jmeter参数化

  *什么是参数化?
根据需求动态获取数据并进行赋值的过程 *jmeter中参数化常用方式
CSV Data Set Config:CSV数据控件
User Defined Variables:用户定义变量
User Variables:用户参数 *jmeter中应用变量方法
参数化的变量用 ${变量名} 表示
7.1 csv数据控件实现参数化 (CSV Data Set Config:CSV数据控件) 一种从外部读取数据功能的组件

     *在线程组右键-添加-配置元件-csv数据文件设置  (准备csv文件-新建一个excel表,填写对应数据,另存为csv格式。如果有中文需要转码,找到此csv格式的文件用notepad打开找到编码-转为UTF-8编码即可)
忽略首行:如果csv文件首行写的是变量名称选择true,如果不是选择false

     http请求中引用变量名和运行。如果使用csv文件中所有数据,需要设置线程组的线程数或者循环次数。

7.2 User Variables:用户参数

  *在http请求上右键-添加-前置处理器-用户参数
配置用户参数:添加变量,添加用户(一个用户就是一组测试数据)
使用用户参数:在http请求中引用变量,在线程组中设置线程数。(使用用户参数的方式,就不能用修改循环次数的方法,要修改线程数才能跑不同的用户。)

7.3 User Defined Variables:用户定义变量
     变量少的情况下,测试计划页面
变量多的情况下,添加-配置元件-用户定义的变量
凡是可以输入的位置,都可以使用变量

7.4 总结jmeter参数化
  csv数据文件配置--适用于大量测试数据时的使用 (配置元件)
用户参数--适用于少量测试数据时的使用。(前置处理器)
用户定义的变量--适用于常量配置:数据库地址,测试环境地址;登录数据(测试计划页面/配置元件)

最新文章

  1. Node.js、Express、Socket.io 入门
  2. hdu 3401 单调队列优化DP
  3. fir.im Weekly - 一切从知识重构开始
  4. django笔记-模型数据模板呈现过程记录(多对多关系)
  5. oracle字符集相关问题
  6. 从java 转到 c# 知识点
  7. DevExpress LookUpEdit和ComboBoxEdit部分用法
  8. Cortex-M3学习日志(五) -- DAC实验
  9. proxy pattern 代理模式
  10. Hack 语言学习/参考---1.2 Hack Background
  11. WPF和Winform的一些界面控件
  12. Error configuring application listener of class 报错 解决
  13. SAN & vSAN & vSAN storage
  14. C#格式符
  15. Python3+Selenium2完整的自动化测试实现之旅(一):自动化测试环境搭建
  16. python3: 自动化测试框架pytest
  17. Kruskal重构树入门
  18. Linux:ftp服务本地用户,虚拟用户配置
  19. 【leetcode-66】 加一
  20. tiny4412 --Uboot移植(3) 时钟

热门文章

  1. HTTPS基础原理和配置-3
  2. vscode + vim 快捷键
  3. 视觉十四讲:第七讲_2D-2D:对极几何估计姿态
  4. 郁金香 注入DLL代码 与MFC窗口DLL文件 开源
  5. JZOJ 2020.02.16【NOIP提高组】模拟A 组
  6. OpenLayers地图标注及弹窗实现
  7. centos7中关闭防火墙命令
  8. 简述cpu、gpu、fpga和asic四种人工智能芯片的性能
  9. WPF 布局控件
  10. 使用shell判断文件夹中是否包含文件