摘要: Jmeter中通过线程组来模拟大用户并发场景,今天主要介绍三个常用的线程组,帮助我们设计更加完善的测试场景,另外介绍下场景执行时间如何计算。 一、Thread Group 取样器错误后要执行的动作 继续:遇错误继续执行,不影响场景运行。默认为继续,常用。 Start Next Thread Loop 阅读全文
posted @ 2019-02-10 22:41 DaisyLinux 阅读(2027) 评论(0) 推荐(0)
摘要: 1.正则提取token后添加:后置处理器-->BeanShell PostProcessor 2.BeanShell PostProcessor写入函数${__setProperty(,,)} 3.线程2中写入函数${__P(,)}调用,我的直接写入信息头管理器 4.主要用到两个函数 5.查看运行结 阅读全文
posted @ 2019-02-10 22:39 DaisyLinux 阅读(2662) 评论(1) 推荐(0)
摘要: 在没有 精确或模糊查询的接口时可以使用jmeter 获取指定的值的ID import java.lang.String ; String getTargetName="iphone632g"; //判读相应结果中是否包含指定值:iphone632g boolean containsCategory= 阅读全文
posted @ 2019-02-10 22:37 DaisyLinux 阅读(330) 评论(0) 推荐(0)
摘要: String [] str ={"1","2","3"}; vars.putObject("strArray",str); int length=str.length ; log.info("length "+length); //vars.putObject("index",0); //vars. 阅读全文
posted @ 2019-02-10 22:36 DaisyLinux 阅读(285) 评论(0) 推荐(0)
摘要: jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B中被调用的。 但是有时为了方便管理,我们可能是把各个接口单独存放在不同的线程组中。拿Cookie来说,虽然每一个线程组中我们也可以在放一个登录请求,然后输出一个Cookie供此线程组使用,但这样就 阅读全文
posted @ 2019-02-10 22:35 DaisyLinux 阅读(1853) 评论(0) 推荐(0)
摘要: 当遇到如跨线程组调用变量等情况,需要设置全局变量。 1、打开函数助手 输入需要的值然后点击生成按钮,或者直接使用${__setProperty(newuserid,${userid},)}的格式 设置局部变量userid和token为全局变量并在另一线程中调用,调用方式见下 ${__property 阅读全文
posted @ 2019-02-10 22:34 DaisyLinux 阅读(15926) 评论(1) 推荐(0)
摘要: 选择或者搜索Stantard Set标准集, 我们要用的Ultimate Thread Group最终线程组包含在里面: 下载完成之后,JMeter会自动重启。 添加最终线程组: 还是以打开博客园首页为例: 现在有这样一个场景: 线性减速10个虚拟用户10秒长的加速时间为3秒减速时间是10秒; 参数 阅读全文
posted @ 2019-02-10 22:28 DaisyLinux 阅读(263) 评论(0) 推荐(0)
摘要: 由于Stepping Thread Group步进线程组已经不被官方推荐了, 所以现在我们使用Concurrency Thread Group并发线程组; 下载Concurrency Thread Group并发线程组插件, 选择或者搜索Custom Thread Groups: 下载完成之后,JM 阅读全文
posted @ 2019-02-10 22:27 DaisyLinux 阅读(696) 评论(0) 推荐(0)
摘要: 背景描述 相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面。大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解决方案,接下来所有微信端的接口测试和性能测试都无法进行,今天和大家分享下我们的解决方案,希望大家可以绕过微信的坑 阅读全文
posted @ 2019-02-10 22:26 DaisyLinux 阅读(3368) 评论(0) 推荐(0)
摘要: 优化大致过程 生成并的报告模板: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output me 阅读全文
posted @ 2019-02-10 22:22 DaisyLinux 阅读(535) 评论(0) 推荐(1)
摘要: 1)截取部分线程组的名称 group = ctx.getThreadGroup(); // 获取当前线程组 str = group.getName(); // 获取线程组的名称 str = str.substring(0,2); // 截取字符串 vars.put("xc",str); vars.p 阅读全文
posted @ 2019-02-10 22:20 DaisyLinux 阅读(5657) 评论(0) 推荐(0)
摘要: 最近在工作中,对jmeter实践的点滴的记录这里分享,不一定正确,仅供参考和讨论,有想法的欢迎留言、谈论。 1技巧1:从csv中获取带引号的数据详情 背景:我们从csv中获取数据,在jmeter中使用这些数据,其中csv的数据如图,有的数据包含引号和逗号 问题:我们获取的数据,被自动加了引号 解决办 阅读全文
posted @ 2019-02-10 22:17 DaisyLinux 阅读(746) 评论(0) 推荐(0)
摘要: jmeter从CSV中获取非正常string,如CSV中有一列值为{"firstname":"Jade"},那么在beanshell中如何获取并解析? 一般的用法:${parameter},此用法,如果不是正常的string,可以正常获取,但是无法解析或打印信息。 可以使用如下方法转成string: 阅读全文
posted @ 2019-02-10 22:17 DaisyLinux 阅读(204) 评论(0) 推荐(0)
摘要: 需求:提取sample返回json数据中所有name字段值,返回的json格式如下: {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}} jmeter中添加后置处理器BeanShell PostProcessor import org.json.*; 阅读全文
posted @ 2019-02-10 22:14 DaisyLinux 阅读(647) 评论(0) 推荐(0)
摘要: 首先了解下生成测试报告的过程,我们看到的测试报告是由.jtl格式转换为.html,html报告的样式由extras目录下xsl文件决定。优化测试报告需要分为两部分内容,首先我们要优化输出的测试内容,其次我们才能优化报告的样式。 1.在jmeter.properties文件添加以下内容,保证执行脚本后 阅读全文
posted @ 2019-02-10 22:13 DaisyLinux 阅读(514) 评论(1) 推荐(0)
摘要: 1、新建一个java请求执行加法类 public class TestDemo { public int Tdemo(int a,int b){ int sum = 0; sum = a+b; return sum; } } 2、再建一个jmeter的java请求类 import org.apach 阅读全文
posted @ 2019-02-10 22:10 DaisyLinux 阅读(702) 评论(0) 推荐(0)
摘要: Jmeter的jmx文件保存了线程数和运行次数等参数,这个参数可以在命令行中传入参数的方式来修改数值 步骤如下 1、生成线程和运行次数的参数 Jmeter选项中函数助手对话框,选中__P参数,这个参数是设置jmeter的属性值的,属性名称设置为para1 默认值设置为2,点击生成,就生成一个字符串, 阅读全文
posted @ 2019-02-10 22:09 DaisyLinux 阅读(259) 评论(0) 推荐(0)
摘要: 1、准备2台在同一个局域网内的机器,一台作为master主控机,一台作为slave 执行机 master机器ip:172.16.20.134 slave机器ip:172.16.20.146 2、在2台机器上安装同样版本的jmeter 和 java 3、关闭slave机器的防火墙,从master 机器 阅读全文
posted @ 2019-02-10 22:06 DaisyLinux 阅读(3229) 评论(0) 推荐(0)
摘要: 怎么把第一个请求获取的返回的多个id,在第二个请求中逐个以单个id作为请求参数来请求? 为了解决这个问题,模拟下该场景 1、请求www.163.com 主页,获取响应中的所有数字,这个获取的数字集合暂且叫ids吧,里面保存的是每个数字作为一个id 2、第二个请求也是访问www.163.com,不过域 阅读全文
posted @ 2019-02-10 22:05 DaisyLinux 阅读(385) 评论(0) 推荐(0)
摘要: 在jmeter 发送请求过程中,有时候后台返回的是unicode 代码,如: 手动转换成中文为: {"status":-1,"msg":"提交数据不足"} 需要使用jmeter 把响应内容转换成中文显示,方便查看。思路是使用bean shell 把unicode响应结果转换成中文,步骤为: 1、右键 阅读全文
posted @ 2019-02-10 22:02 DaisyLinux 阅读(978) 评论(0) 推荐(0)
摘要: 请求接口需要同时发送签名,签名定义为: 可以看出签名就是把用户的密码 、用户名 和签名key生成一个md5串就可以了 刚好jmeter 有个md5 生成,生成前需要获取name ,password key ,先用csv 获取用户名和密码及key。具体步骤: 1、用abc.csv 文件保存下账号密码和 阅读全文
posted @ 2019-02-10 22:01 DaisyLinux 阅读(1013) 评论(0) 推荐(0)
摘要: 有一个需求,新建一批账号,把获取的账号相关信息存入文本文件,当文本文件保存的数据达到一定的数量,就自动停止新建账号。 分析下需求: 1、把账号信息保存到文件,需要使用bean shell脚本(bean shell脚本语法和java一样,功能也一样),并且需往脚本中传入要保存的信息 2、文件中保存的数 阅读全文
posted @ 2019-02-10 21:59 DaisyLinux 阅读(174) 评论(0) 推荐(0)
摘要: 有一个任务,需要频繁发送订单请求,并分析订单请求中有没有存在重复订单号,思路是用jmeter 发送http请求,使用正则表达式获取到订单号,并把订单号和线程号作为参数提供给java请求,在java请求中把订单号写到包括有线程号的命名文件中。完成出来的样子是这样的 步骤如下: 1、Jmeter 发送h 阅读全文
posted @ 2019-02-10 21:56 DaisyLinux 阅读(492) 评论(0) 推荐(0)
摘要: 有时在测试过程中需要将测试过程中生成的参数保存下来,jmeter并没有此类功能,此时,可以 通过beanshell编写代码来实现 思路: 每次请求响应返回后,通过正则表达式获取到需要保存的值,通过Bean shell调用已经写好的Java代码,将值写入指定的文件中 1、编写java类AppendFi 阅读全文
posted @ 2019-02-10 21:53 DaisyLinux 阅读(2951) 评论(0) 推荐(1)
摘要: 如下 vars.put(row,rowNum); >vars.get(row);只能在同一线程在使用; ${__setProperty(row,rowNum)}; >${__property(row)};跨线程组调用,可以在任意地方调用; props.put(row,rowNum); >props. 阅读全文
posted @ 2019-02-10 21:44 DaisyLinux 阅读(492) 评论(0) 推荐(0)
摘要: jmeter 控制线程组执行顺序 这个要配合全局变量、if和while来实现BeanShell取样器,全局变量:${__setProperty(newswitch,${switch1},)}if条件:"${__P(newswitch,)}"=="1"while条件:${__javaScript("$ 阅读全文
posted @ 2019-02-10 21:39 DaisyLinux 阅读(383) 评论(0) 推荐(0)
摘要: 说明:本文部分资料摘抄至 来源: http://www.cnblogs.com/puresoul/p/4915350.html 来源: http://www.cnblogs.com/puresoul/p/4949889.html 来源: http://blog.csdn.net/silencemyl 阅读全文
posted @ 2019-02-10 21:03 DaisyLinux 阅读(300) 评论(0) 推荐(0)
摘要: import java.io.BufferedReader; import java.io.FileInputStream; String str = "E:\\Desktop\\WOS接口测试"; String[] strs = {"评价列表.csv","添加留言.csv"}; for(int i 阅读全文
posted @ 2019-02-10 20:59 DaisyLinux 阅读(229) 评论(0) 推荐(0)
摘要: 统计行号列号 1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.io.File; 4 5 6 print(" 输出结果表格${csvPath} "+"${csvPath}"); 7 print(" 阅读全文
posted @ 2019-02-10 20:57 DaisyLinux 阅读(647) 评论(0) 推荐(0)
摘要: import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFRow; impor 阅读全文
posted @ 2019-02-10 20:52 DaisyLinux 阅读(817) 评论(0) 推荐(0)
摘要: 在使用jmeter性能测试时,我们都得先添加个线程组,右键testplan-->添加-->Threads-->线程组。在线程组下执行。 问题:为了能够让jmeter在做性能测试的时候,能够像loadrunner场景设置中逐渐增加并发数,且逐渐减少并发用户数,在不同的并发用户数下,测试系统各个指标的变 阅读全文
posted @ 2019-02-10 20:50 DaisyLinux 阅读(203) 评论(0) 推荐(0)
摘要: jmeter BeanShell实例 两个变量之间的断言对比 在jmeter的中,断言没法对两个变量的进行对比后判断,只能使用Bean Shell断言来进行,总是有人来问怎么写呢。这里写一个简单的实例吧。 需求: 获取某个用户对应的设备个数接口与数据库查询的个数结果进行对比 Bean Shell断言 阅读全文
posted @ 2019-02-10 20:50 DaisyLinux 阅读(1138) 评论(0) 推荐(0)
摘要: byte[] responseData = prev.getResponseData().; private String filePath = "F:/test.txt"; BufferedOutputStream bos = null; FileOutputStream fos = null; 阅读全文
posted @ 2019-02-10 20:38 DaisyLinux 阅读(218) 评论(0) 推荐(0)
摘要: 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利 阅读全文
posted @ 2019-02-10 20:34 DaisyLinux 阅读(2775) 评论(0) 推荐(0)
摘要: 1、添加一个 http信息头管理: Add new value for Name = “Content-Type” and value = “application/json” (without quotes). 2、增加一个http sample : 使用body data进行json格式数据请求 阅读全文
posted @ 2019-02-10 20:33 DaisyLinux 阅读(318) 评论(0) 推荐(0)
摘要: 1、函数助手里的 p及property的使用 ${__P(init,2)} , ${__property(init,start,200)} 可以自行定义变量名称,及变量的默认值 P 变量名为init, 值为2 ,使用的时候直接${__P(init,2)}就可以,改变量的结果为2 ${__proper 阅读全文
posted @ 2019-02-10 20:29 DaisyLinux 阅读(4270) 评论(0) 推荐(0)