- 博客(33)
- 收藏
- 关注
原创 26.压测遇到的问题(踩坑)
1.在便携机上压测,压测的时候一堆接口失败,报错address in use connect.咨询了一个开发大佬知道是电脑的tcpip连接端口太少了,占用后释放很慢,需要调整一下。方法1:自己根据网上解决方案修改了http请求中不勾选USE KeepAlive,再去压测就没报错了。(经验证可以解决问题)方法2:又根据网上教程在注册表增加2个配置,但是只设这两个配置的话压测还是报一样的问题,所以我压测的时候就去掉勾选USE KeepAlive来测试了。
2025-03-02 16:26:41
917
原创 24.jmeter安装插件
打开这个网站,点击下方红色箭头的地方下载查看管理jar包,下载完成后将这个jar(jmeter-plugins-manager-1.10.jar)放到jmeter的lib\ext目录下重启jmeter后在选项的最下方显示一个插件管理,点击打开可以看到三个目录,Installed Plugins 是已安装的插件Available Plugins是可安装的插件。
2025-03-02 15:54:02
268
原创 25.jmeter递增加压
方法1:在jmeter插件网站上找到JMeterPlugins-Standard.jar并下载,JMeterPlugins-Standard.jar 有递增加压的线程组:Stepping Thread Group。下载好之后放到lib/ext目录下,再重启jmeter。方法2:如果可以联网就直接在jmeter上下载即可。前提是jmeter有安装插件管理。在线安装插件:Custom Thread Groups 里面就有Stepping Thread Group插件可以做递增线程数的压测。
2025-03-02 15:26:00
435
原创 23.HTTP请求-高级选项
在多并发的性能测试中,测试到最后发现有一些线程卡住一直不结束,这种问题是需要开发定位和解决的。但是为了出测试报告,可以在HTTP请求-高级选项中设置连接超时时间和响应超时时间(单位毫秒,1000ms=1s)一般性能测试的时候会产生大量的请求,为了方便定位失败的请求开发人员一般会在请求头加一个id用来识别是做性能测试产生的请求,方便在日志中找到。设置了这个的话,如果HTTP请求超过设定的连接超时时间或者响应超时时间,jmeter就会把这个请求判断为失败请求,防止阻塞测试活动结束。
2025-03-02 15:00:35
217
原创 22.取样器-测试活动vs固定定时器
测试活动是放在哪个位置就是在那里暂停。如果他前面有HTTP请求,那么就是先执行完HTTP请求,再执行测试活动进行暂停等待,等待结束了再执行测试活动后面的HTTP请求。如果测试活动放在线程组的第一个,那么就是先执行测试活动暂停等待,再执行后面的HTTP请求。如果线程组只有一个请求,线程组设置循环次数,在请求后添加测试活动,就做到第一次请求执行前不需要暂停等待,执行完后暂停等待,下一次循环再执行请求,再暂停等待。如果固定定时器放在HTTP请求的下面,就只作用这个HTTP请求,先暂停等待再执行这个请求。
2025-02-18 08:59:23
107
原创 21.性能压测也要添加断言
接口压测的时候,会存在一些接口响应码虽然是200,但是实际返回值并不正确。而jmeter只有响应码是400和500才认为是失败接口,所以压测的时候也需要添加断言,检验成功返回的接口返回值中一定有的内容。这样才能将所有失败接口统计正确。之前不知道这种情况没有加断言,所以很少失败的接口,后面开发跟我说要添加断言,加上了之后再测一次发现的确很多失败的接口,返回值都没数据。
2025-02-18 08:44:27
240
原创 20.jmeter定时刷新token
将setup线程组的获取token的请求复制粘贴过来,然后再在线程组下添加一个固定定时器,设置30分钟以内的时间即可,比如29分钟(在setup线程组的token没超时前执行这个线程组的获取token请求)。所以要在压测请求的线程组下添加上仅一次控制器,这个控制器下的请求只会执行一次,不受线程组设置的循环次数限制,但是会根据线程组设置的线程数来执行。4.到29分钟后第二个线程组执行HTTP请求,获取到新的token值放在变量中,第三个线程组在29分钟后取到的是第二个线程组的token值。
2025-02-16 17:28:54
326
原创 19.jmeter调整内存
启动jmeter的时候有一句英文提示可以修改jmter内存去满足你的测试要求,因为jmeter默认是1g内存的,并发数较大(500+)的时候会超过它的内存导致内存溢出,会实际压测在线用户数上不去还往下掉(用在线用户数插件)。可以修改jmeter内存,notepad编辑打开jmeter.bat文件,在151行有一句设置内存的,替换为8g 8g 1028,即改为8g内存。原来能不能并发那么多不仅要看服务器,还要看自己用的工具支不支持那么大的并发,还要看自己电脑支不支持那么大的并发。
2025-02-16 17:20:48
491
原创 excel交换两列数据
2.长按Shift键,按住鼠标左键拖动列到要交换的列的后面的竖线,会看到深绿色的大写I,松开鼠标左键就实现两列数据的互换。1.选中交换的第一列,鼠标放在列后的竖线上,箭头会变成十字箭头。
2025-02-12 11:26:39
247
原创 notepad++使用技巧
1.光标放在首行要插入内容的位置,按下三键:Ctrl+Alt+Shift,往下拖动鼠标到要编辑的行后,再输入内容。1.Ctrl+F打开替换窗口,输入\r\n,"替换为"不输入内容。查找模式选择正则表达式,点击替换全部。二、多行相同位置插入内容。
2025-02-12 11:17:02
698
原创 每日的版本测试进展邮件包含哪些内容
这两个图也可以用一个图做出来:近十天问题趋势图,今日新增问题,今日解决问题,遗留问题-柱状折线图,遗留问题是折线,另外两个是柱状图。1)根据不同模块团队统计需求总数,需求待转测条数,已转测需求条数,需求验证通过条数,了解大概多少需求没转测,把握整体版本转测进度,用表格统计。统计哪个开发问题单比较多,是否需要分配一些给其他开发帮忙解决,以免问题解决太慢或解决不完影响测试进度,提醒开发优先解决严重问题单。8).个人问题单汇总:今日提单,待开发解决,版本提单-柱状折线图,版本提单是折线,其他是柱状图。
2024-12-04 10:57:29
597
原创 个人测试日报邮件怎么发
风险是写版本测试的风险,比如转测时间太晚,测不完;问题太多,开发问题解决慢,开发反复引入问题;严重问题阻塞测试等,要附上测试责任人,开发责任人,SE。求助是自己解决不了的问题需要向领导求助,比如测试环境被占用无法测试;需要跟领导申请资源等,不过一般都没有,因为求助的内容一般工作遇到了就找领导讲了。风险与求助本来是放在2.测试进展与风险的,但是不方便领导查看,所以改成放在最前面。4.问题进展:新增xx问题单,关闭xx问题单,遗留xx问题没解决。编写测试设计/测试用例——已完成,邮件可以附上完成的文档。
2024-12-02 10:52:34
707
原创 16.jmeter测试片段--可以将请求导出为测试片段,其他人导入测试片段来使用
当希望某个请求可以复用到其他测试计划中的时候,就可以将HTTP请求保存为测试片段,再用到其他测试计划中。
2024-11-24 10:22:47
307
原创 17.jmeter逻辑处理器-循环控制器
方法2:添加一个循环控制器,将CSV数据文件设置和HTTP登录请求都拖到循环控制器的下面,在循环控制器的下级目录。循环控制器的循环次数填写5。比如我们用csv数据文件设置做了5组数据的传递到登录接口,那么5组数据都测试的话,接口就需要跑5次,要怎么设置一个HTTP请求执行多次呢?方法1:在线程组中修改迭代次数为5,这种修改会把线程组下所有HTTP请求都执行5次。循环控制器的作用:反复执行某件事。
2024-11-24 10:22:30
156
原创 18.命令行执行jmeter,生成测试报告
测试报告是index.html文件,而且每次生成的都是这个文件名,所以要重复执行的话,必须要先在D:\Tools\apache-jmeter-5.6.3\report下删除掉所有东西,另外这个test20241103.jtl也要删掉。jmeter -n -t D:\Tools\apache-jmeter-5.6.3\jmx\HTTP请求-登录.jmx -l test20241103.jtl -e -o D:\Tools\apache-jmeter-5.6.3\report。-n:不启动ui界面。
2024-11-24 10:21:53
364
原创 02.SQL性能优化的常见手段
2)利用小表驱动大表,熟练使用in和exists,in适用于左边大表,右边小表的情况,exists适用于左边小表,右边大表的情况。核心思想是小表驱动大表,提升执行速度。查看sql有没有使用索引,可以通过查看查询的执行计划来进行,执行计划会显示查询是如何被执行的,包括是否使用了索引。3)用连接查询代替子查询,执行子查询会创建临时表,执行完毕要删除临时表,增加不必要的性能消耗。可以通过在查询前加上EXPLAIN关键字来获取执行计划。4)对于连续数值,能用between就不用in。4.表太大,根据业务拆表。
2024-11-24 10:12:40
315
原创 15.jmeter监听器-聚合报告
线程内添加监听器-聚合报告:设置csv文件路径,不用勾选仅错误日志,这里要呈现所有的请求。测试计划和线程组内部都可以添加监听器。
2024-11-23 19:43:36
114
原创 14.jmeter查看结果树
在压测的时候,会产生大量请求,所以在查看结果树一般会勾选仅查看错误日志,这样查看结果树中只会显示失败的请求。查看结果树可以选择响应文本的呈现方式,还可以进行表达式的测试,比如json path tester,正则表达式test等。失败的断言也能在左侧展开请求看到详情。如果接口本身的返回是400或者500,就算断言通过,这个请求在左侧也是显示红色失败的。查看结果树用于查看HTTP请求的结果,可以放在一个线程组下或者测试计划下。如果放在测试计划下,就可以看到这个计划下的所有HTTP请求的结果情况。
2024-11-23 19:41:01
268
原创 12.固定定时器-两个接口之间设置等待时间
两个请求是逻辑上相关的,上一个请求拿到返回值后再去触发下一个请求,但是如果上一个请求是异步请求的话,虽然立马返回值了,但是后台还在处理,下一个请求就必须增加等待时间,等上一个请求完全执行完成后再去执行下一个请求。这种情况可以在第二个请求的下面添加一个固定定时器,HTTP请求上右击-添加-定时器-固定定时器,线程延迟(毫秒),根据实际上一个请求预估设置一个时间即可,500毫秒就是0.5秒,1000毫秒就是1秒。添加监听器-用表格查看结果,可以看到每个接口的开始时间,查看固定器有没有效果。
2024-11-23 19:37:16
390
原创 11.jmeter使用随机数参数和时间参数
使用场景:有一些接口每次都必须用新参数去调用才可以生效,那么就需要在接口参数中用到随机数或者时间戳来保证每次调用请求,接口参数都不一样。${__time(/1000,)} : 该公式精确到秒级别, 10位数。${__time(,)} : 默认该公式精确到毫秒级别, 13位数。返回毫秒的时间参数的写法:${__time(,)}在注册用户接口使用时间戳。参考文章:随机数设置。
2024-11-23 19:32:53
584
原创 10.jmeter配置外部文件作为入参-CSV数据文件设置
所以断言的预期值也要放在CSV文件中,传到断言组件中来,就可以做到每次执行一组数据,断言的预期值是对应的。变量名称需要跟CSV文件每一列放的数据的变量名称是相同顺序的(所以建议csv文件有标题,标题名称就是变量名称),多个变量名称用英文逗号隔开(只是写变量名称,不调用变量),忽略首行是否勾选取决于准备的csv文件有没有标题,有标题就要勾选。HTTP请求中将入参用变量标识如${id},有多少个入参需要从从csv传就命名多少个变量,csv文件每列数据对应相应的变量,csv文件可以要表头也可以不要表头。
2024-11-23 19:21:56
311
原创 09.JSON断言
如果使用了CSV数据设置文件,多组数据有正向用例也有负向用例的时候,HTTP请求接口设置的断言就不能是完全一样的了,不能写死断言的预期值。所以断言的预期值也要放在CSV文件中,传到断言组件中来,就可以做到每次执行一组数据,断言的预期值是对应的。所以断言的预期值也要用变量获取。如果要判断返回值中的多个key的值是否符合预期,就多添加几个json断言。因为一个json断言只能判断一个key的值。就填写上面的key的预期值是多少。因为请求的返回值最常见的格式是JSON格式的,所以可以使用JSON断言来判断结果。
2024-11-23 19:19:38
211
原创 08.响应断言
如果使用了CSV数据设置文件,多组数据有正向用例也有负向用例的时候,HTTP请求接口设置的断言就不能是完全一样的了,不能写死断言的预期值。所以断言的预期值也要放在CSV文件中,传到断言组件中来,就可以做到每次执行一组数据,断言的预期值是对应的。启动HTTP请求后,如果断言失败,在查看结果树左侧可以展开请求看到断言的失败情况。成功的话是不显示的。接口的响应文本如果是一直不变的话,使用响应文本断言的时候,可以拷贝查看结果树的text的返回值来判断是否相等即可。匹配规则有包括,匹配,等于,否,字符串,或者等。
2024-11-23 19:18:19
173
原创 07.jmeter计数器用法
因为要注册10个用户,所以要执行10次,可以在线程组中设置循环次数为10,也可以设置线程数为10,不过线程数为10是指并发10次,对于注册用户来说都是10次吧。比如注册10个用户,就可以在注册接口前添加一个计数器,配置从1开始,递增1,引用名称是变量名称。计数器是根据线程组设置的线程数个数来迭代同一个HTTP请求的。在HTTP请求中将用户名加上变量名称,使得用户名不重复。计数器添加:点击线程组-添加-配置元件-计数器。
2024-11-23 19:03:24
390
原创 06.jmeter跨线程组传参
以token来举例,因为token这个请求有请求头,跟要用到token的请求的请求头不一样,所以只能单独分开放在不同的线程组。2.复制json提取器的变量名称,点击工具-函数助手,选择setProperty函数,属于一个自定义的变量名称,在第二个输入框调用json提取器的参数:${token},点击生成,复制生成的表达式。1.先创建一个线程组,放获取token的请求,添加一个json提取器填写表达式和变量名称token,将token值提取到变量token中。5.再添加一个线程组,放新的HTTP请求。
2024-11-23 18:59:08
352
原创 05.正则表达式提取器-接口返回内容
模板表示取第多少个值,如果取1个值填写$1$,如果有多个值就填写$1$$2$,如果多个值那么变量就是一个数组。匹配数字写1就是取第一个值,如果取所有值就填-1。2.在查看结果树选择RegExp Tester,正则提取格式要用括号()括起来,括号里面填写正则表达式要提取的内容,如果返回内容就是要提取的内容那么用(.*)就可以将返回内容提取出来,点击TEST测试提取的内容是否是自己想要的。当需要提取接口返回的内容,但是返回内容又不是JSON格式的时候,可以使用正则表达式提取。
2024-11-23 18:54:10
203
原创 04.json提取器-提取返回值的内容
2.填写HTTP请求中的内容后执行,在查看结果树中查看结果,如果请求的返回值是json格式的,我们就选择JSON TESTER,输入能提取出返回值内容的表达式,格式是$.开头,.代表的是json的层级也就是{,每一层之间用.,写好了之后点击test,如果result的结果是自己想提取的内容,说明表达式正确。3.复制表达式,在这个获取token的HTTP请求下添加一个json提取器,将表达式放在expression,再输入一个变量名称token。1.创建获取token的HTTP请求,再添加一个查看结果树。
2024-11-23 18:52:53
308
原创 03. jmeter请求不能同时有参数和消息体-使用HTTP请求头管理器
jmeter中HTTP请求不可以同时填写参数和消息体,所以遇到一些POST请求,有请求头又有BODY的话需要添加一个HTTP请求头管理器,将请求头放进去,BODY的内容还是放在HTTP请求的消息体中。请求头管理器是作用于一个线程组的所有请求的,如果不同HTTP请求的请求头不一样,就要把HTTP请求分别放到不同的线程组中。
2024-11-23 18:36:20
265
原创 02.jmeter基本操作-自定义变量
ip就可以用前面定义的变量了,引用变量的写法是${环境的变量名称},端口号也是引用变量${端口的变量名称}。自定义变量是有作用域的,如果放在一个线程组下,那么这个线程组下的所有请求都可以调用,如果放在测试计划下面线程组上面,那么测试计划下所有线程组都可以调用。2.添加线程组,线程组,setup线程组相当于前置步骤,teardown线程组相当于后置步骤。如果没有前置和后置步骤,那就直接添加线程组。jmeter中定义的变量在满足作用域的情况下,可以在名称,注释,参数,请求,body等地方都可以调用。
2024-11-23 18:34:46
441
原创 01.Jmeter下载
1.登录Jmeter官网 Apache JMeter - Download Apache JMeter下载,要下载标红的那个安装包。下载后解压就可以使用了。打开jmeter: /bin/jmeter.bat 可以发送桌面快捷方式。2.jmter依赖JDK,所以要安装JDK,安装JAVA JDK 1.8。java jdk下载: Java Downloads | Oracle。下载成功后直接安装,安装成功后一般环境变量就自动配置好了。javac 内容是中文的就是正常的。
2024-11-23 18:22:57
178
转载 HttpWatch的指标说明:Blocked、Connect、Send、Wait、Receive(转)
Blocked time includes any pre-processing time (such as cache lookup) and the time spent waiting for a network connection to become available. Internet Explorer will only create a maximum of two concur
2016-09-09 16:15:48
416
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人