Jmeter使用讲解

  1. 提取某值用作全局变量使用
    a.设置JSON提取器,提取token
    b.用BeanShell后置处理程序,将token设为全局变量,script下填入如下:
    String token = bsh.args[0];
    KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(ne…{app_token},)}
    备注:str = bsh.args[0],表示获取数组参数
    KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(全局…{引用值为Json提取器中设置的名称},)}
    c.引用全局变量token,在需要使用的位置引用:引用方式写成 KaTeX parse error: Expected group after '_' at position 2: {_̲_P(newtoken)} 或{__property(newtoken)} 都可
  2. 获取时间戳、格式化时间
    通过函数助手,生成一个_time 函数,如果参数为时间戳,公式如下:
    ${__time(,)} : 默认该公式精确到毫秒级别, 13位数
    ${__time(/1000,)} : 该公式精确到秒级别, 10位数
    3、 如果参数需要为当前日期,那公式为:
    ${__time(yyyy-MM-dd,)}
    ${__time(YMDHMS,)}
    4.MD5加密
    最简单的是使用内置函数digest和MD5
    在这里插入图片描述
    在这里插入图片描述
  3. 拼接参数进行加密
    a.前置处理器中进入拼接
    在这里插入图片描述

b.提交处引用
在这里插入图片描述

  1. 如何模拟的批量用户来自不同的IP地址
    为什么要IP伪装和iP欺骗:第一是绝大部分服务器出于安全考虑会对同一IP地址做过滤;第二是做压测时有这样的场景,比如某些业务同一个ip频繁请求,请求的数据会被服务器做丢弃处理。
    内网压测:ip欺骗是在局域网里面找一些没有被使用过的ip地址,然后以这些ip地址发请求过去,这样的话,服务端接收到的ip地址,都是你局域网里面的ip,它的确是模拟了其他ip的。
    外网压测:是把咱们的系统部署到外网上了,所有的人都可以访问,ip欺骗模拟的ip还是局域网里面的那些ip,你公司里面整个网络的出口都是一样的,所以外网压测ip欺骗无用。

Jmeter实现IP欺骗
a.给电脑添加10个虚拟IP,打开cmd用管理员身份输入for /l %i in (起始数字,1,结束数字) do netsh interface ip add address “以太网” IP前缀.%i 子网掩码
例如:for /l %i in (10,1,210) do netsh interface ip add address “以太网” 10.200.10.%i 255.255.254.0
b.将新增的200个ip参数化,储存在本地的scv文件中
c.在需要ip欺骗的http请求中,修改Source Address(选择IP/Hostname),指定请求要用到的本地地址(参数化)
在这里插入图片描述
d.如何批量删除上面添加的ip地址呢?
1.以管理员身份运行cmd,第一步,输入:netsh -c int ip dump >c:\ip.txt输入后,在C盘根目录看到一个ip.txt的文件,内容为当前网卡的设置信息
2.编辑ip.txt文件,把想要删除的ip在ip.txt里删除掉,并保存修改后的文件。
3.输入:netsh -f c:\ip.txt 。重启电脑后生效。
8. Jmeter写回结果到Excel
a.下载jxl.jar包放在Jmeter的安装lib目录下(jxl.jar的作用是完成对Excel的读写以及修改操作),

  1. Jmeter操作数据库
    批量删除数据:条件id存放在CSV中,且id都必须存在。 在这里插入图片描述
    在这里插入图片描述

批量添加数据: 在这里插入图片描述
在这里插入图片描述

批量修改数据: 同理
批量查询语句:例如查询年龄大于等于35到45之间的人员 在这里插入图片描述
多条语句查询:
在这里插入图片描述

  1. 如何解决增加(insert into)和修改(update)数据库出现的乱码(在Database URL后添加characterEncoding=UTF-8,该处编码跟数据库的编码保持一致,例如mysql查看编码:选某个表–右键–设计表–选项—字符集)在这里插入图片描述
    Jmeter参数化时,中文乱码问题解决:
    第一种方法:参数化文件中文乱码,可在“csv文件设置”将编码改为“GB2312”即可 在这里插入图片描述
    第二种方法:将csv文件后缀修改txt,然后另存为时将下方的编码格式修改为UTF-8保存
  2. 查询多条语句时,选Callable Statement与Prepared Select Statement的区别
    callable statement会把多条语句查询的结果显示出来,而Prepared Select Statement只显示第一条语句的查询结果。
  3. 查询的结果放在变量里(Variable names)或结果集里(Result variable name)的区别
    取值方式不一样:Variable names的引用 n a m e 数 字 ,而 R e s u l t v a r i a b l e n a m e 是在 B e a n s h e l l S a m p l e r 中写代码从结果集取值作为变量,之后在需要引用的地方 {name_数字},而Result variable name是在Beanshell Sampler中写代码从结果集取值作为变量,之后在需要引用的地方 name,而Resultvariablename是在BeanshellSampler中写代码从结果集取值作为变量,之后在需要引用的地方{代码中保存的变量名字}即可,Beanshell Sampler中的代码如下:
#结果集中取值作为变量
columnvalue=vars.getObject("结果集的变量名").get(结果集的索引值,从0开始).get("对应列的字段名");
#把数据保存起来
vars.put("变量名字",columnvalue)

在这里插入图片描述
在这里插入图片描述

  1. 取样器的Debug Sampler和后置处理器的Debug postprocessor区别
    在写测试脚本过程中,需要先调试脚本是否能够跑通,这是可以使用Debug Sampler取样器辅助调试。

  2. 线程数和循环次数的区别在这里插入图片描述

  3. 准备的测试数据,只想执行奇数或偶数编号的用例(只想执行指定的几个测试数据)?答:推荐使用if控制器在这里插入图片描述
    在这里插入图片描述
    备注:
    执行奇数用例判断条件:KaTeX parse error: Expected group after '_' at position 2: {_̲_jex13({id}%21,)}
    执行偶数用例判断条件:KaTeX parse error: Expected group after '_' at position 2: {_̲_jex13({id}%2
    0,)}
    执行随机指定用例:5条以内用 ||,5条以上在数据表的一列构造数据标签run,执行标记1,不执行标记0,再在csv data set配置中添加一个名称run,表达式KaTeX parse error: Expected group after '_' at position 2: {_̲_jex13({run}==1,)}
    在这里插入图片描述
    16.Jmeter把查询出来的数据保存到txt文件中
    在这里插入图片描述
    在这里插入图片描述
    Beanshell中代码如下:

//将查询的结果保存在test.txt文件中
FileWriter fstream=new FileWriter("E:/test.txt",false);
//这里需要注意false是覆盖写入,true是追加
BufferedWriter out=new BufferedWriter(fstream);
for(int num=1; num<=3; num++){
	//拼接变量名称
   	name = "name"+"_"+num;
   	password = "password"+"_"+num;	
	//把拼接的名称赋值给 username
//	vars.put("username",name);
//	vars.put("passw",password);	
	out.write(vars.get(name)+"  ");
	out.write(vars.get(password)+",");
} 
//out.write(columnvalue+",");
out.close();
fstream.close();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一个开源的Java应用程序,用于进行性能测试和负载测试。它可以模拟多种类型的负载,包括静态资源请求、动态资源请求、数据库查询、Web服务请求等。以下是对JMeter性能测试的介绍: 1. 测试计划:JMeter的性能测试是基于测试计划进行的。测试计划是一个树形结构,包含了测试的各个组件和配置。你可以在测试计划中添加线程组、取样器、定时器、断言等组件。 2. 线程组:线程组是性能测试的基本单位,用于模拟并发用户。你可以设置线程数、循环次数、启动延迟等参数来模拟不同的负载情况。 3. 取样器:取样器用于发送请求并获取响应。JMeter提供了多种类型的取样器,如HTTP请求、FTP请求、JDBC请求等。你可以根据需要选择合适的取样器来模拟不同的场景。 4. 定时器:定时器用于控制请求之间的时间间隔。你可以设置固定延迟时间或随机延迟时间来模拟真实用户的行为。 5. 断言:断言用于验证响应结果是否符合预期。你可以添加断言来检查响应的状态码、响应时间、响应内容等。 6. 监听器:监听器用于收集和展示测试结果。JMeter提供了多种类型的监听器,如查看结果树、聚合报告、图形结果等。你可以选择合适的监听器来分析测试结果。 7. 配置元件:配置元件用于设置全局参数和请求参数。你可以添加配置元件来设置代理服务器、HTTP头信息、Cookie管理等。 8. 数据文件:JMeter可以从文件中读取测试数据,如CSV文件、Excel文件等。你可以使用数据文件来模拟不同的测试场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值