- 博客(162)
- 收藏
- 关注
原创 Jmeter+influxdb+grafana监控平台在windows环境的搭建
在grafana界面,点击+下import,将刚才复制的ID拷贝到Grafana.com Dashborard中。数据源连接成功了,需要以什么形式或者图标展示,这时候就需要一个展示模板,grafana提供了jmeter的模板。原理:Jmeter采集的数据存储在infuxdb数据库中,grafana将数据库中的数据在界面上进行展示。直接选择zip包下载,下载后解压即可,我之前下载过比较老的版本,这里就不重复下载了,网速太慢。三、grafana如何与influxdb进行关联,展示数据。
2023-11-23 09:18:13
591
原创 Jmeter(119)-函数threadNum妙用
这样,如果需要使用100个用户,只需要加一个beanshell的前置处理器vars.put("user","test"+"${__threadNum}");要执行2个线程3次循环,发现每次循环时,接口中用户参数的数据就会不一样,变成了test1、test2、test3、test4、test5、test6,想到的第一个办法是,使用前置处理器User Parameters,定义参数user,值为test1和test2。如果使用csv也是这个效果,但是实际想要的是test1执行3次,test2执行3次。
2023-07-17 20:29:57
1353
原创 数据进行分组后同一字段字符串连接方法
一开始的时候使用的是但是一直提示找不到这个函数,一时陷入迷惑,难道是mysql不支持这个函数?但是百度明明都说mysql是支持的。数据源如下:期望将同一个id_supplier_basic_info输出的supplier_type写在一行上,可以按‘/’分隔。结果,视图想换个工具去查看数据库的时候发现原来用的是postgrelSQL,找到下列方法尝试可用。
2023-05-19 15:07:41
290
原创 flask框架sqlachemy中query或者filter中四舍五入处理
需要使用func.round(exression,x) ,x为保留的小数位数,我一开始直接使用round怎么也不通过一直报错,必须使用func.round。第一点:在query时需要将两个小数相乘后的数保留2位四舍五入,比如下面的单价*已收货数量。使用"%.2f"|format(expression)将总价修改为。第二点:在html中若要将显示的格式保留2位小数。第三点:如果想要在html中计算的数值取绝对值。可以在要取绝对值的后面加|abs。
2023-05-05 14:23:35
260
原创 python爬虫数据写入excel
在Jmeter118中描述了如何将接口请求的响应数据写入到csv中,同样的接口如果采用python写法,会简便很多,主要是用到了python中的pandas库。'2023展会.xlsx''参展公司中文名称'
2023-03-14 15:11:21
2053
1
原创 Jmeter(118)-json提取器如何直接提取响应是数组的值
在响应结果树中可以用json path tester进行测试,也就是说当返回的直接是数组的情况下,$.[*]就可以表示数据下的每个元素,$.[*].CN_DESCRIPTION就可以或者元素下某个具体字段的值了,其它。按以上的写法写入csv文件后字段并没有对齐,比如同一个英文名会被切分成2个字段,有时候响应的数据直接是一个数组的情况下,也可以用json提取器进行值的提取。目的是想提取这个数组下的每个值对应一行数据,以提取这几个数据为例。应该是这个字段中有逗号的原因,这个在之前讲过,可参考。
2023-03-14 09:46:57
1988
原创 Jmeter(117)——beanshell生成2进制文件
添加后置处理器,指定录音文件存放的位置filepath,通过getResponseData()获取字节数组,FileOutputStream、DataOutputStream写入。接口的响应内容是2进制文件,实际是一段录音文件,希望将响应内容生成aac格式的录音文件。
2023-03-09 14:03:25
747
原创 excel中单元格时分秒全显示问题
今天在处理jmeter生成的csv数据时遇到这样一个问题,点击单元格中数据显示的时间可到时分秒。我期望是看到秒做一些数据的分析,首先想到的是是不是列宽不够,调整列宽后发现没用。寻找的方案是:自定义单元格式,选中要调整的列。但是不选中单元格时看到的时间只能到分。
2023-02-01 17:35:54
948
3
原创 sql查询条件中字符串包含单引号处理
今天在写sql语句时遇到一个语法错误,导致执行到那一行就失败。以上是完全没有问题的,但是如果过滤的字段名称中包含单引号。将字符串中的单引号前面再增加一个单引号,如下。这样就没办法执行了,
2022-09-21 17:22:34
6084
1
原创 GIT记录
此时在暂存区中显示readme文件待删除 mark.txt未管控,红色表示需要在commit之前处理的。在git bash中执行git config --list --global ,查看全局配置。git安装后的最小配置(user.name、user.email)查看最近2次 git log -n2 --oneline。查看帮助 git help --web log。查看有哪些分支 git branch -av。删除分支 git branch -D 分支名。切换分支git branch 分支名。
2022-09-09 17:28:19
243
原创 Jmeter(116)——写入xls登录案例实战
比如需要测试一堆登录信息是否可用,使用手机号、身份证、验证码进行登录,如果登录接口msg信息返回成功,则认为登录成功,否则失败。关于模板标题字段,只要确保最后3个字段是固定表示预期、实际、结果就行,其它可以任意减少或增加,就可以直接使用这个类下方法生成报告。第1至第3字段为传入登录接口的参数手机号、验证码、身份证号,第4列为期望结果,第5列实际结果,最后1列用背景色表示用例通过或失败。通过login接口msg的返回值与期望结果比较,得出最后的result,全部写入xls文件,最后的结果类似。...
2022-09-01 16:13:14
461
5
原创 Jmeter(115)——在jmeter中写入xls文件的基本方法
WritableFont wf=new WritableFont(WritableFont.createFont("宋体"),11,WritableFont.BOLD);//添加label对象,Label(column,row,content),在sheet中将label加入到单元格中,适用于以上单元格格式。log.info("单元格类型:"+sheet1.getCell(0,1).getType());//设置列宽度setcolumnview(列号,宽度)//添加DateTime对象。...
2022-08-29 14:25:21
665
原创 Jmeter(114)——在jmeter中读取xls文件的基本方法
在数据量不大时,我们可以使用xls格式文件进行读写操作,同时也可以对单元格内容进行设置,而不像csv文件一样保存后格式就无,还有数字特长时总是出现科学计数法,导致读取后内容有问题。将下载的jxl包放入到jmeter安装目录lib/ext下,此时打开jmeter,建立一个beanshell sampler,今天先学习下如何读取文件内容,在D盘根目录下创建以下文件,分别是手机号,验证码和ID。需要注意的是,在beanshell中,必须先import,然后再写方法,最后才调用方法。......
2022-08-26 15:31:41
2176
原创 linux日常记录1
只需要知道报名,yum工具自动从源端仓库下载安装,源端仓库地址可以通过查看cd /etc/yum.repose.d/这个目录下.repo文件。rpm --help | more --管道符是将前面命令输出的结果作为后面命令的输入 ,可以分页查看。.tar.gz 主要为源代码包,包里含有.h .c等文件,查看tar包里内容,tar -tf tar包。make install --安装,默认安装至/urs/local/tar -xzvf tar包 --解压缩。...
2022-08-17 15:08:43
191
原创 Jmeter(113)——提取html中元素的CSS selector extractor
在做gui页面元素断言时,需要提取页面中的元素,可能会用到这个CSS selector extractor,实际我没有在工作中使用过,大抵看了下,定位元素方法,语法规则用的是jsoup,这个后续可以学习下。三、通过属性,[attr^=value], [attr$=value], [attr*=value]: 分别表示属性名以什么开头,以什么结尾,包含什么。二、通过class定位,以.class名称。四、选择器组合定位,tag.class。简单的尝试了以下一些方法,作为记录。一、通过id定位,#id名称。..
2022-08-12 11:28:45
1210
原创 Jmeter(112)——windows环境下内存溢出
找到安装目录bin下jmeter.bat文件,用记事本打开,搜索set Heap,将Xms设置为1g,Xmx=4g,通常情况下Xmx表示分配的最大内存不应大于实际机器内存的一半,保存后重启。这时候你会发现启动界面上的堆内存设置还是原来的1g,没有改变,我也一直没搞明白为什么。在执行压测过程中由于压力机本身的原因导致脚本出错,在日志中可以看到。但是可以通过jconsole查看VM参数,在cmd命令行下输入jconsole.exe。查看vm参数,实际已经是修改过后的值。...
2022-08-11 11:55:44
449
原创 jmeter(111)——如何测试单接口或某个事务的tps?
今天看论坛时无意中得到启动,可以通过stepping Thread Group进行不同线程数量的加压,具体参数说明上一节已讲过,现设置如下,总共启动20个线程,分5次加压,每次增加4个线程,每次持续30秒。从上图的聚合报告中看出不同并发数下对应的吞吐量和响应时间,其中在前4个阶梯时随着并发量增加响应时间增加,tps也随着增加,但是到了并发20时,响应时间增加,tps不再增加,说明已经到了吞吐量的拐点。同时通过查看下图,随着线程数增加一开始tps是线性增长,到16个时突然下降。......
2022-08-10 15:35:19
1751
原创 Jmeter(110)——阶梯式加压线程组Stepping Thread Group
传统的Thread Group线程组的加压方式只能在ramp up time内加载多少个线程,这样每秒加载的线程数量就是线程数/ramp up time ,有一个插件Stepping Thread Group可以帮助我们加压时进行阶梯式加压。Next:几秒内加多少个线程,并持续多久。上图中就是0秒内加20个线程,并且持续30秒,这样的话启动100个线程需要5步。Then,start:然后再启动多少个线程,上图中,首先没有设置等待,然后启动了20个线程。Then,hold for :所有线程启动后持续多久。.
2022-08-10 14:27:57
668
原创 Jmeter(109)——Transaction Controller
可以看到结果树和聚合报告中都增加了一个sample名为Transaction Controller,聚合报告中事务控制器的Average响应时间为2000ms,很显然是它下面两个取样器的响应时间之和,但是没有包括定时器的时间,但是在最后计算Throughput时值为1.1,表示每秒处理的事务数(包括其下所有的子项)为1.1个,这个值是怎么计算的?总的事务数是10个,所有事务执行完毕的时间是9秒(这个值可以从右上角的时间看到),那么10/9=1.1,很显然这个值是包含定时器的时间的。...
2022-08-03 11:49:52
510
1
原创 Jmeter(108)——Concurrency Thread Group
设置完毕以上参数,意思就是期望达到10个并发,这10个并发不是瞬间增长的,需要在1分钟内达到,并且分5次加压,即每60/5=12秒加压一次,每次增加并发数10/5=2个,达到10个并发后,运行1分钟。ThreadIterationslimit线程循环次数,默认空为无限循环,最后根据保持时间停止线程。HoldTargetRateTime保持时间,这里设置1分钟。这个线程组只有在启动时会设置阶梯加压,最后释放时会全部瞬时释放。RampUpTime加压时间,这里设置1分钟。......
2022-08-02 15:53:08
611
原创 Jmeter(107)——线程等待Thread.sleep
除了使用定时器、Thinktime外,还可以在beanshell中使用Thread.sleep(sleeptime)来设置等待时间,其中sleeptime的单位为ms。
2022-08-02 11:42:33
1681
原创 如何同时启动多个cmd命令?
在windows的命令行中,如果要执行多个启动命令,就需要打开多个cmd命令窗口。这时候就可以使用批处理命令,在执行命令的目录中新建一个startup.bat文件,右击记事本打开。填写需要执行的命令,每一个命令前加start,这时候就会启动一个新的cmd窗口。保存后双击startup.bat执行,此时就会显示3个窗口命令。比如要启动hub、node。...
2022-07-19 16:30:37
6046
1
原创 Jmeter(106)——http取样器中同请求一起发送参数中编码的作用
在http请求中当请求参数中包含一些特殊符号(指除了数字字母外)和中文外,请求的响应结果就会出现异常,检查时看到结果树中明明显示的请求参数没问题,可是就是不对。所以如果参数值中包含了这些特殊符号,请在请求时务必将URLEcode勾选上,以免出现编码格式问题。这时候要去后台看下请求日志,就会发现传过去的token参数值会有部分解析问题,所以响应会报token失效。比如,以下请求参数token。...
2022-07-18 10:42:23
543
原创 selenium grid4入门-Hub and Nodes的经典模式
本来以为host应该是在5555端口上,但是不起作用,还是在4444上起作用,这里node和hub都是再同一台机器上,所以感觉和standalone模式没有任何差别,官网也没说明grid4中这个模式怎么在其他机器上注册,暂且不看吧。此时已经找到了我们在上篇中已经下载的3个驱动,并且已经添加成功。启动后,服务器默认还是本地的4444端口,这也是远程驱动需要指向的url,访问。使用以下命令增加nodes,服务器会从path中找到可用的驱动。此时,控制台页面会显示grid尚未注册Nodes。...
2022-07-15 14:19:02
1373
原创 selenium中使用Microsoft Edge浏览器驱动下载
在不知道哪里下载edge驱动时,执行以下代码,在报错信息中会显示下载地址查看当前edge浏览器的版本,在刚才打开的下载页面找到与edge浏览器匹配的驱动 64位操作系统就选x64点击下载,下载完成后解压缩 将exe文件copy到和chromedriver同一目录,这样就不用重复设置path再次执行刚才的代码,edge浏览器就能成功打开了......
2022-07-14 17:16:04
5761
原创 selenium grid4入门-standalone模式
参考官网:Getting started with Selenium Grid | Seleniumselenium grid4有三种模式standalone模式能够在一台机器上面执行完整的分布式功能,是Selenium Grid的最简单的模式,默认情况下,服务会在http://localhost:4444地址监听,我们需要通过RemoteWebDriver指向这个地址。classical模式也可以称为hub和node模式,此项模式比较适用于中小型分布式执行要求,根据需要设置一个服务节点(hub)和多个代理
2022-07-14 15:29:01
1050
1
原创 docker在windows上的安装
参考官方安装指导Install Docker Desktop on Windows | Docker Documentation1.下载桌面版cocker 2.下载完后双击这个exe文件 3.弹出安装界面,确保以下选项被选中,点击ok 4.安装完成后重启windows,开机后会自动启动docker5.重启后会弹出条款变更的通知,选择accept,继续6.此时如果没有安装WSL 2会弹出, 安装完内核更新包后重启docker此时docker desktop界面就会显示表示安装成功...
2022-07-13 17:39:02
770
原创 Jmeter(105)——读取csv文件参数时显示方块乱码
在91节中讲过在结果树中显示?乱码的解决方案Jmeter书中不会教你的(91)——dummy sampler中响应中文结果树中显示乱码?_agrapea的博客-CSDN博客在实际中还会遇到读取csv文件参数时显示方块字乱码比如这种,content和type都是从csv文件中读取的参数,其中方块字是中文乱码 尝试采用91中的解决方案无果,怀疑是文件格式有问题。解决方案:步骤1:将原csv文件用记事本打开,可以看到在这里其实没有乱码 步骤2:将其另存为,可以看到原编码格式ANSI改成utf-8保存 步骤3:重新
2022-07-12 10:15:58
687
原创 Jmeter(104)——前置处理器User Parameters
我们在遇到请求时如用户名和密码需要参数化,在用户量不多的情况下,可以使用前置处理器User Parameters去预设值一批用户名和密码的值,但是如果量大的情况下,还是建议使用csv。 将username和password参数化,引用变量来自于前置处理器User Parameters 每个线程会从User_1依次取值,比如执行3个线程,http请求中username依次会取u1,u2,u1如果是单个线程循环3次,那么http请求中username每次都会取第一个值u1...
2022-07-07 11:11:40
412
原创 Jmeter(103)——前置处理器RegEx User Parameters
实际中这个前置处理器RegEx User Parameters用的很少,需要配合正则表达式提取器一起使用,关于正则表达式提取器,可以看前一篇文章。Jmeter(102)——正则表达式提取器详解_agrapea的博客-CSDN博客作用:就是将正则表达器中提取的值,分组1和组2的值, 作为下一个请求入参的参数和值。比如正则表达式中提取的第一条userlist_1_g1=username,userlist_1_g2=Test001第二条userlist_2_g1=password,userlist_2_g2=12
2022-07-06 11:47:52
504
原创 Jmeter(102)——正则表达式提取器详解
之前在Jmeter书中不会教你的(8)——提取响应内容的神器JSON Extractor_agrapea的博客-CSDN博客中提到过如果要在一个提取器中设置两个变量的方法。 今天来看看正则表达式中《组》group的概念。 首先创建一个dummy sampler,响应数据如下,希望提取name和value中的值存放在变量userlist中 ...
2022-07-05 14:36:55
737
原创 Jmeter(101)——Beashell中Script File的用法
在beanshell sampler中编写如下,日志在下方打印出来。 beanshell用了这么久,Script file这里一直没用过,不知道怎么用。一开始看帮助文档时以为是执行另外一个脚本文件,于是将此脚本另存为jmx文件后,将其加入到这里的script file,执行后出错啦。 后来仔细斟酌了下,应该是beanshell的脚本文件,就是指在在Script下执行的这段脚本,于是将log.info("如何引用外部脚本文件");log.info("abc");log.info(Parameters);
2022-07-04 17:37:55
589
原创 Jmeter书中不会教你的(100)——函数V的使用
在41节及69节涉及过变量的嵌套引用,再来说说V这个函数怎么做到嵌套引用。看一下它的帮助文档新建一个测试计划,增加三个变量如果想在后续引用A1的值很显然这种嵌套引用是不支持的,全部当成字符串处理...
2022-06-22 16:57:34
2050
2
原创 Jmeter书中不会教你的(99)——java request实例
简单来说java request就是在jmeter界面通过传入一些设置的参数给特定的java代码去处理,最后在jmeter中输出结果。比如以下,设置两个参数,选择test.MyJavaRequest类,这个是一个自行创建的java代码,将这个java代码导出为jar包后存放在/lib/ext下,这时候再java request下拉菜单中会自动加载这个类。这个java代码怎么写?在jmeter中使用的需要按固定格式一、在eclipse创建一个java工程,比如JavaRequest二、在src下创建packa
2022-06-22 11:02:29
1396
原创 Jmeter书中不会教你的(98)——存放键值对HashMap
以获取的取样器响应头为例,演示如何将响应头信息存入HashMap,通过prev.getResponseHeaders()获取的响应头格式如下,其中第一行为状态码 HTTP/1.1 200 OK,换行后的数据都是以冒号区分的键值对,我们只存这部分内容。可以随意创建一个http取样器,在其下增加一个后置beanshell处理器 控制台打印结果如下 如果想要获取HashMap长度以及遍历整个...
2022-06-20 15:23:02
777
原创 Jmeter书中不会教你的(97)——程序复用的Module Controller
实际中,总有一些代码需要重复使用,为了减少脚本或者看着更简洁,比如以下2个线程组内都需要调用baidu,可以将这个请求作为公共部分,放在Test Fragment下,在线程组1和线程组2下建立逻辑控制器---Module Controller,点击Module Controller,在右侧选择这个模块控制器要执行的动作,比如,要访问baidu增加一个结果树执行后查看......
2022-06-17 15:24:14
313
原创 Jmeter书中不会教你的(96)——如何避免写入csv的数字显示科学技术法
如果我们对一个很长的数字不进行处理,name写入csv文件时很可能看到的是这样的为了让它正常显示,实际写入时只需要增加一个符号即可,以当前时间戳为例//当前时间戳,利用time函数,加双引号将其转换成字符串打印sendtimestamp="${__time(,)}";log.info(sendtimestamp);//写入文件path="writeto.csv";fw=new FileWriter(path,true);bw=new BufferedWriter(fw);//按以下格式直接写入时 就会
2022-06-17 10:46:38
705
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人