JMeter安装和使用(一)
apache jmeter安装和使用

JMeter安装和使用
测试前的准备工作
-
需要java环境,所以需要安装jdk,可以参考文章Windows系统Java环境变量配置
-
java环境配置好后,到jmeter官网下载对应的版本,传送门 http://jmeter.apache.org/download_jmeter.cgi;根据自己本地的java环境选择对应的jmeter版本。
-
解压后进入bin目录,Windows机上执行jmeter.bat文件即可
建测试计划
-
打开后,右键新建 线程组;
-
在线程组上添加HTTP请求;如图:
- 再右键添加结果树,可以查看测试结果。
到此一个简单的HTTP请求新建成功。
定时器
jmeter提供了很多元件,帮助我们更好的完成各种场景的性能测试,其中,定时器(timer)是很重要的一个元件,最新的3.0版本jemter提供了9种定时器(之前6种),下面一一介绍:
定时器的作用域
-
定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面);
-
当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;
-
如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入;
固定定时器(Constant Timer)
如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。
对于“java请求”这个sampler来说,定时器相当于loadrunner中的pacing(两次迭代之间的间隔时间);
对于“事务控制器”来说,定时器相当于loadrunner中的think time(思考时间:实际操作中,模拟真实用户在操作过程中的等待时间)。
这里附上一个传送门,对loadrunner中的pacing和think time有比较全面的解释:https://zhidao.baidu.com/question/1431215934913423459.html 我们通常说的响应时间,应该大部分情况下是针对某一个具体的sampler(http请求),而不是针对一组sampler组合的事务。
参数化
配置元件——CSV Data Set Config
- 点击线程组添加配置元件 → CSV Data Set Config:
- 说明:
Filename:F:\jmeter\csvtest.dat文件名,保存参数化数据的文件目录,可选择相对或者绝对路径(建议填写相对路径,避免脚本迁移时需要修改路径);
File encoding:UTF-8,F:\jmeter\csvtest.dat文件的编码格式,在保存时保存编码格式为UTF-8即可;
Variable Names(comma-delimited):对对应参数文件每列的变量名,类似excel文件的文件头,起到标示作用,同时也是后续引用的标识符,建议采用有意义的英文标示;
如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,这里的 user,pwd,可以被利用变量名来引用:user,{pwd};
Delimitet:参数文件分隔符,用来在“Variable Names”中分隔参数,与参数文件中的分隔符保持一致即可;
Allow quote data:是否允许引用数据,默认false,选项选为“true”的时候对全角字符的处理出现乱码;
Recycle on EOF?:是否循环读取参数文件内容;因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入; △ Ture:为true时,当已读取完参数文件内的测试用例数据,还需继续获取用例数据时,此时会循环读取参数文件数据(即:读取文件到结尾时,再重头读取文件); △False:为false时,若已至文件末尾,则不再继续读取测试数据;通常在“线程组线程数* 线程组循环次数>参数文件行数”时,选用false(即:读取文件到结尾时,停止读取文件);
Stop thread on EOF?:当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义; △若为ture,则在读取到参数文件行末尾时,终止参数文件读取线程; △若为false,此时线程继续读取,但会请求错误,因此时读取的数据为EOF;
Sharing mode:共享模式,即参数文件的作用域,有以下几种方式: △All threads:当前测试计划中的所有线程中的所有的线程都有效,默认; △Current thread group:当前线程组中的线程有效; △Current thread:当前线程有效;
完成之后,将刚才生成的参数写入参数对应的值里面:
HTTP属性管理器
jmeter是一个开源灵活的接口和性能测试工具,当然也能利用jmeter进行接口自动化测试。在我们利用它进行测试过程中,最常用的sampler大概就是Http Request,使用这个sampler时,一般都需要使用配置元件里的http属性管理器,其作用就是用于尽可能的模拟浏览器的行为,在http协议层上定制发送给被测应用的http请求。
jmeter提供以下五种http属性管理器: HTTP Cache Manager:Cache管理器 HTTP Cookie Manager:cookie管理器 HTTP Header Manager:信息头管理器 HTTP Authorzation Manager:授权管理器 HTTP Request Defaults:请求默认值 以HeaderManager为例:
通常Jmeter向服务器发送http请求的时候,后端需要一些验证信息,比如说web服务器需要带过去cookie给服务器进行验证,一般就是放在请求头(header)中,或者请求传参需要定义参数格式等;因此对于此类请求,在Jmeter中可以通过HTTP信息头管理器,在添加http请求之前,添加一个HTTP信息头管理器,发请求头中的数据通过键值对的形式放到HTTP信息头管理器中,在往后端请求的时候就可以模拟web携带header信息。
PS:可以点击添加、删除按钮等来新增和删减信息头的数据,也可通过载入按钮来将信息头数据加载进去(信息头数据较多时推荐使用)。
断言
断言就类似LoadRunner中的检查点。对上一个请求返回的信息,做字符串、数据包大小、HTML、XML、图片等做判断,确保返回的信息的准确性。
添加响应断言:对返回code的判断。
如果接口返回成功,则会返回0(以自己实际的返回为准,这个返回为是我的项目返回,是xml格式)
断言中可以添加多个断言一起判断,断言中也可以使用参数化方法,进行动态判断。
添加断言结果
断言判断正确
异常的断言
运行脚本,如果接口返回的code不是0则会出现断言找不到的提示信息。
未完待续ing
Related Posts
You may like these post too
Comments on this post
0 comments
还没有任何评论哦!赶快来抢个沙发啦!
Leave a comment
it’s easy to post a comment