jmeter入门案例(二)
jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html
jmeter典型的http请求示例
业务场景
银行卡收单交易,模拟100W商户进行入金交易,模拟对手方账户为2个
场景分析
鉴于场景可知
1、需要造100W商户信息
2、需要将100W笔交易随机分布在模拟的2个对手方账户上,即入参随机为2个账户z
测试计划搭建
1、建立线程组:右键testplan---->添加线程---->添加线程组

2、建立http请求:右键线程组---->创建取样器---->http请求

其中‘消息体数据’中的${},意味着变量,其中${__}开头的为预定义的函数,位置在---->选项---->函数助手对话框;其它的变量稍后会给出在哪设置
3、预定义函数使用:位置在---->选项---->函数助手对话框

其中有两个参数,一个是时间格式,另一个是变量名,即你在其它地方使用时可以使用该变量名,
然后点击生成,将函数字符串复制到请求报文中即可,请求报文见步骤2
The result of the function is:即该函数的返回值
Current JMeter Variables:即使用该函数后,将在jmeter的当前线程中产生的内部变量
更多函数的使用可以自己研究下,官方文档https://jmeter.apache.org/usermanual/functions.html
4、添加配置元件----http信息头管理器

该配置主要补充HTTP请求的头部,这里将交易报文格式设置为json格式
操作步骤:右键http请求---->添加---->配置元件---->http信息头管理器
5、添加配置元件----csv数据文件设置

操作步骤:右键http请求---->添加---->配置元件---->csv数据文件设置
该步操作的目的是为了读取已造好的100W的商户数据(该步操作可以通过读取数据库来实现,即不需要读取本地csv文件,后续章节会涉及),这里采用读取本地文件方式。
变量名称:即csv中每列对应的变量名(该变量名可以不和csv中的列名一致,只需要保持位置顺序一致即可,逗号隔开)
6、添加配置元件----计数器

操作步骤:右键http请求---->添加---->配置元件---->计数器
引用名称:即变量名
这里使用计数器是因为模拟的对手方账户只有2个,因此要根据计数器选择其中一个对手方账户,逻辑见第7步
7、添加前置处理器----BeanShell PreProcessor

操作步骤:右键http请求---->添加---->前置处理器---->BeanShell PreProcessor
这里用到了第6步中的计数器,即vars.get("num"),这里的vars即jmeter的内置变量,本质是map,因此采用get/put进行操作即可
这里可以看到将“supplierCode”放入了vars中,所以在请求报文中可以通过${supplierCode}获取到值
更多解释请参考https://blog.csdn.net/shimengran107/article/details/76849748
官方文档地址:https://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PreProcessor
8、添加后置处理器----BeanShell PostProcessor

操作步骤:右键http请求---->添加---->后置处理器---->BeanShell PostProcessor
这里添加该处理器的目的是解决应答报文中的中文乱码
prev在这里指的是jmeter中的SampleResult类
更多操作见官方文档:http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PostProcessor
9、添加监听器----查看结果树

操作步骤:右键http请求---->添加---->监听器---->查看结果树
查看结果树的用途可以看到每一笔请求的详细情况,包括请求和响应的报文
另外可以设置“仅错误日志”,则只会显示异常的HTTP交易,可以将结果写入文件中,支持csv和jtl
更多操作见官方文档:http://jmeter.apache.org/usermanual/component_reference.html#View_Results_Tree
10、添加监听器---->聚合报告

操作步骤:右键http请求---->添加---->监听器---->聚合报告
该页面可以展示一些经过统计的数据
| label | samples | average | median | 90%line | 95%line | 99%line | min | maximum | Error% | throughPut | received KB/SEC | send kb/sec |
| 分组 | 请求量 | 平均值 | 中值 | 90%的请求的ms | 95%的请求的ms | 99%的请求的ms | 最小值 | 最大值 | 错误率 | tps | 接收的数据量 | 发送的数据量 |
更多信息见官网:http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report
11、测试
至此,该测试计划配置结束,接下来介绍怎么运行

该篇结束,下篇介绍非GUI模式测试,重点在报告详情分析
https://www.cnblogs.com/wish5714/p/9724935.html
jmeter入门案例(二)的更多相关文章
- Quartz应用实践入门案例二(基于java工程)
在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...
- Quartz应用实践入门案例一(基于Web环境)
Quartz是一个完全由java编写的开源作业调度框架,正是因为这个框架整合了许多额外的功能,所以在使用上就显得相当容易.只是需要简单的配置一下就能轻松的使用任务调度了.在Quartz中,真正执行的j ...
- _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)
博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- Python爬虫Scrapy(二)_入门案例
本章将从案例开始介绍python scrapy框架,更多内容请参考:python学习指南 入门案例 学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的Spider并提 ...
- Java开发学习(二)----IOC、DI入门案例
一.IOC入门案例 1.1 思路分析 (1)Spring是使用容器来管理bean对象的,那么管什么? 主要管理项目中所使用到的类对象,比如(Service和Dao) (2)如何将被管理的对象告知IOC ...
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
- Spring(二)--Spring入门案例
Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...
- Struts2第一个入门案例
一.如何获取Struts2,以及Struts2资源包的目录结构的了解 Struts的官方地址为http://struts.apache.org 在他的主页当中,我们可以通过左侧的Apache ...
随机推荐
- h5互动课件动画如何实现?如何快速开发h5互动课件动画
最近几年随着h5的兴起,复杂的h5动画,甚至是交互动画类型的产品不断涌现,尤其在课件产品方面,很多公司都有相关需求,最近很多h5开发工程师想了解相关方面的技术. 针对h5,如果是简单的动画效果,可以考 ...
- Azure CosmosDB (10) Azure Cosmos DB体系结构
<Windows Azure Platform 系列文章目录> Azure Cosmos DB的体系结构分为以下几个部分: 1.Database Accounts Database Acc ...
- Windows 7 X64平台编译LLVM+clang
1 源码包 去LLVM官方网站下载最新的源码,Windows平台下载三个即可(2019.04.24版本为LLVM 8.0.0): LLVM source code (.sig) Clang sourc ...
- __unsafe_unretained的含义
OC的变量限定词的官方解释: __strong is the default. An object remains “alive” as long as there is a strong point ...
- js中Array的map()函数,其中的回调函数还能这么用
<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程 ...
- JAVA的DES加密解密在windows上测试一切正常,在linux上异常
windows上加解密正常,linux上加密正常,解密时发生 如下异常,异常信息如下: [ERROR] 2018-10-15 09:30:35,998 method:com.iscas.ippc.co ...
- day3-三级目录
date = {"guangdong":{"guangzhou":{"tianhe":["tyx","zjxc ...
- LINUX FTPshez
https://www.jb51.net/article/132337.htm FTPQ重启: service vsftpd restart
- webapi xml序列化删除<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">标签
在WebApiConfig.Register中加入config.Formatters.Remove(config.Formatters.XmlFormatter); 移除默认的xml序列化器
- sqlserver查找使用了某个字段的所有存储过程
当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我们不知道哪些存储过程使用了该字段,那我们该怎么办?我们可以从之前的文档一个一个 ...