Jmeter实战

Jmeter实战

入门篇

一、下载与使用

下载地址:http://jmeter.apache.org/download_jmeter.cgijava

开源,基于java编写,因此得有jdk(jre)环境,下载完成直接解压,进入bin目录运行jmeter便可正则表达式

各个平台都差很少, 点开以后进入主界面apache

能够经过 选项栏选择语言json

接下来就能够进行测试工做了。后端

二、经常使用组件

由于我是用范围主要是测试http接口,其实主要就是测我本身写的接口,因此我就讲我用到的服务器

1)线程组

测试计划-添加-threads-线程组
由于咱们的组件都是跑在线程上, 这里能够经过线程组模拟用户数量等。cookie

2)观察结果树

线程组-添加-监听器-观察结果树
这个组件用于调试观察咱们的测试请求,能够看到接口响应,一会讲。函数

3)http请求

线程组-添加-sample-http请求工具

这时候,咱们一次请求须要的基本组件就这么多, 以百度为例。测试

咱们在服务器域名上输入被测系统的域名,路径就是接口路径,能够在Parameters里面添加参数。

以后点击运行, 就能够在 观察结果树 里面看到接口返回的信息了

能够清楚地看到响应头和响应数据,而且jmter支持直接用一些格式解析响应数据

这个就根据需求选择了, 通常rest接口都是json,直接默认text就能够。

关于http协议的知识就不赘述了。

cache 和 cookie是http中常常须要使用的组件,与后端交互每每须要带上cookie的数据才能获取理想的响应。

直接 添加-配置元件便可。

关于cookie啰嗦一句, 若是模拟多用户, 最好每次都清除cookie,这样结果比较准确, 由于你带着cookie访问后端的逻辑会不同,
固然这些都创建在你了解被测系统的基础上作决定。

5)测试数据

数据的准备通常直接从测试库down下来便可,

转成csv格式,很简单相似于这样

而后 选项-函数助手对话框

csv file的值就是文件路径。
文件列号就是,要用第一列就填0,第二列就写1,以此类推。而后点生成

以后在想用到数据的地方,拷贝生成的字符串就好了,例如。

这个用户名就能够每次变化了。

6)脚本的录制

由于一个个添加请求太麻烦,出错率也高,(好吧主要是懒)。
有两种录制方法
1.badboy工具
2.http代理服务器。
这两种方法有不少博客了。
由于我没找到mac版的badboy,我就用了代理服务器,其实原理差很少,也挺方便。

7)正则表达式提取器

脚本录制完还没结束,由于不少请求的参数是依赖于上一个请求的(好比说第一个接口是返回用户id,第二个接口是经过id获取详细信息。 )
那么显然,咱们每次传的id都不会相同,由于用户不一样。 由于在真实环境中,这些id每每由js来控制写入请求参数里面,而jmeter没法执行这些js。这就要让测试人员认真过一下每一个接口,看看是否有相似的状况。 若是有,那么咱们就用正则提取器来提取这个“id”。供下一步使用。

好比这个响应json的st须要给下一步使用,这个st就是“id”

那么 咱们在http请求里添加-后置处理器-正则表达式提取器

引用名称就是起个名字,正则表达式须要本身写,
模板是使用提取到的第几个值。由于可能有多个值匹配,因此要使用模板。从 1 开始匹配,依次类推。这里只有一个,因此填写 $1$ 便可;
匹配数字表示如何取值。0 表明随机取值,1 表明所有取值。这里只有一个,填 1 便可;
缺省值表示参数没有取到值的话,默认给它的值。通常不填。

接下来在使用到id的地方直接写 ${ST} 就能够了, 和上面测试数据的是一个意思。

8)聚合报告

以上基本能够完成一次自动化的测试了, 模拟用户数量直接在线程组里设置便可, 而后添加一下聚合报告,启动测试,就能够查看结果了。 别忘记先禁用 观察结果树 ,这样会省不少的资源。 over。

相关文章
相关标签/搜索