赞
踩
ftp的默认端口号是21,22是ssh,23是Telnet,3306是MySQL数据库,1543是seqserver,80是http,443是https,8080是Tomcat
FTP即File Transfer Protocol,文件传输协议,就是用来传输文件的
在jmeter中使用
如果要上传非文本文件,要勾选使用二进制模式
也可以直接把本地文件内容上传到文件里
jmeter默认不支持webService了,需要下载插件
但是插件中是不支持中文的,遇见中文就乱码
所以借用大神修改的插件-CustomSoapSampler-1.3.4,已上传到资源,把插件放到jmeter安装目录\lib\ext,然后重启jmeter。
这时取样器中就有了
如果是练习时,网上有免费的webservice的服务,所有人可访问。但是用来练习调试脚本可以,不能用来压测。它是有限制的,短时间内访问次数过多会被封ip。
进去后有很多的webservice,我用手机号码归属地测试
URL是http://+host+post
下面的是请求内容,两个string的位置是请求参数,userid没有就不填
然后执行一下看看,可以看到请求是成功的,而且中文内容也是可以正常显示的
想要测试一个数据库,得先有数据库(开启数据库)
还要一个驱动文件(需要下载)驱动的版本要和mysql的版本对应上,前面大的版本号能对应上就可以
两种方式添加驱动
1.测试计划下的浏览,找到存放驱动的目录,添加进去
2.直接把驱动放到jmeter安装目录下的lib中,然后重启jmeter
jmeter中配置jdbc请求
添加配置元件,添加请求,添加察看结果树
Validation Query:要么为空,要么select 1就可以,select 1基本上可以通用
Database URL:jdbc:mysql://ip:端口号/库名(端口号如果是3306就不用写,我的是有冲突,改成3307,所以要写)
jdbc driver class:jdbc驱动类(第一个就可以)
请求中的Variable Name of Pool declared in JDBC Connection Configuration与配置元件JDBC Connection Configuration中的Variable Name for created pool要一致。代表执行请求的时候要用到那个连接
怎么用jmeter执行SQL
我lebo这个库中有user这个表
jmeter中写SQL语句和在dategrip中执行SQL是一样的
对于数据库来说,只有查询和更新。无论是增删改,都需要更新。
我增加一条数据(update和delete也是一样的,都要用update statement)
就是有一条更新
参数化
1、直接用${__Random(001,999,)}这种形式
我用30个线程循环3次,name设置为3位的随机数
执行可以看到是成功的
在数据库中看一下结果,是增加成功的
2、预定义的形式
用问号占位,代表问号的位置将会有一个变量传进来,下方Parameter values就是要传的变量
如果有多个问号,下面变量位置就写多个,前后位置要一一对应。
Parameter types:传的变量的类型
对于数据库来说,预定义的形式性能更好,尤其是在大量重复使用一条语句的时候,性能更好。因为这种方式mysql数据库会把SQL提前编译好存在mysql里边,然后再次调用的时候直接传参数就可以了,不会有检查编译的过程。
提取库中的数据
用SQL语句可以查出来数据库中的数据了,然后该怎么用呢?
我查询的是表中name的值,把取出的值存放到变量中,取名为names
Variable names就是变量的值
debug看结果,这就取出来并存好了
然后再用foreach迭代,打出来看看。查出来几条数据里面就可以打出几条
安装插件
插件安装完再打开就可以看到,多了这5个线程组
一个个看
bzm - Arrivals Thread Group
Target Rate:目标多少个(10个)
Ramp Up Time:多长时间内起来(现在是按分钟算的,下面可以切换分钟和秒钟,1分钟)
Ramp-Up Steps Count:几步起来(2步)
Hold Target Rate Time:达到目标个数后,再运行多长时间(10分钟)
bzm - Concurrency Thread Group
和上面的基本没有区别
bzm - Free-Form Arrivals Thread Group
多用于综合场景,完成第一段再启动第二段
添加一行(从第1个开始,到第10个结束,期间经过了60秒。Start Value,End Value,Duration这些值都是可以改的)
添加多行,然后需要刷新一下(比如再添加一条然后删除),图表才会发生变化
第二行需要第一行的试岗用户都跑完才开始跑的
jp@gc - Ultimate Thread Group
和bzm - Free-Form Arrivals Thread Group很像,但是这个是累加的,不像那个是一段一段分开的
这是两个不同的组织
这个也是用于较复杂的场景,在这里脚本不用变,只修改线程组就行
Add Row添加一行数据
Start Threads Count:开始线程数
Initial Delay,sec:初始化延迟
Startup Time,sec:启动时间,多长时间启动完所有的用户
Hold Load For,sec:用户需要跑多长时间
Shutdown Time:退出时间
一共100个线程,30秒进场完毕,执行60秒,然后10秒内全退出
我再添加一个
一共200个线程数,前100个需要30秒启动,后100个需要10秒内启动,而这里还是30秒就启动完了,所以这个是取大的,30秒内这200个全都启动了,而不是一个执行完再执行另一个
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。