天天看点

软件接口测试工具Jmeter使用方法详解(一)

软件接口测试工具Jmeter使用方法详解(一)

介绍完了接口测试是什么及其内在逻辑和Jmeter的安装,从这篇文章开始我们正式开始介绍Jmeter的使用方法。如果对接口测试逻辑流程和Jmeter安装有疑问的朋友

好了,接下来就开始这篇文章的内容吧。说实话,Jmeter的用法真的不难,在明白了自己为什么要学以及要学哪些工具之后,学习Jmeter就像学习Word、Excel等操作软件一样,简单的很。

一、测试计划界面及基本设置

通过双击bin目录下的ApacheJMeter.jar打开软件,得到的是下图这样的一张图片,这就是Jmeter的主界面了。

软件接口测试工具Jmeter使用方法详解(一)

如上图所示,可以安装上左右分成几个模块,上面和平常用的软件一样,都是一些功能点,后面详细介绍。上图中红框1中是测试计划,可以在这里添加线程组,然后在线程组下面添加请求、结果树等零件,然后就组装起了一个可以完成某个功能的机器人。

先来介绍一下红框2、3、4里的东西,剩下的内容以后遇到了我们再说,毕竟,学习要有重点,能够完成需求就可以了。

Jmeter里面是以测试计划为基本单位的,红框2里面就是命名和注释测试计划的地方,可以根据测试的目的和单位具体的规则来命名。影响不大,可以随时修改。

红框3里面是用户自定义的变量,这是解决参数化需求的一种方式,最常用的是另外一种。所以可以不用管它,最常用的是CSV和函数,我们后面会先重点介绍CSV。

红框4里面就有一些东西了,第一个选项是独立运行每个线程组。其实就是让同一个测试计划下的若干个线程组按照顺序从上往下执行,即,执行完一个再执行一个这样子。如果不进行设置的话,线程组的执行顺序是不一定的(并发执行)。这个选项主要在涉及到参数传递的关联接口测试中会用到。

红框4的第二个选项是主线程结束后运行teardown线程组,一般默认勾选就可以了。在Jmeter中,除了普通线程组以外,还有两个特殊的线程组,setup线程组和teardown线程组。前者一般用来加载资源,最先执行,后者一般用来保存数据等收尾工作,最后执行。

函数测试模式暂时不介绍,需要先介绍了函数以后才会用到函数测试模式,而且一般也不用。

剩下的添加目录或jar包到classpath这个选项,主要是在直连数据库的时候会用到。

二、线程组界面及基本设置介绍

在测试计划处右键单击,依次选择 添加 --- 线程 --- 线程组,就可以为测试计划添加线程组了。添加以后得到的线程组界面如下图所示:

软件接口测试工具Jmeter使用方法详解(一)

红框1里的名称注释和测试计划的名称注释差不多,根据需要自己修改就可以了。红框2里面的线程属性是值得介绍一下的。

所谓线程数就是理解为用户数,这里设置3个线程,就可以理解为有3个用户执行了这一线程。循环次数可以理解为一个用户执行了几次。比如说线程数和循环次数都设置为3次的话,所代表的含义是有三个用户,每个用户执行3次,一共9次。所谓ramp-up时间,则指的是在多少时间之内执行完毕。在前面的基础上,这里设置为3秒,意味着在3秒之内执行9次。循环次数勾选永远的话,就是一直执行下去。

其他的选项保持默认即可,遇到特殊情况再做调整。接下来说一下调度器,勾选以后,持续时间和启动延迟就可以选择了。一般这两个选项是要和循环次数---永远 一起用的,即,在多少时间之内(持续时间)一直循环执行,持续时间之后就不执行了。而启动延迟指的是点击执行后延迟一段时间(启动延迟)执行。

三、请求界面及基本设置介绍

在线程组上右键单击,选择 添加---取样器---http请求 就可以为线程组添加请求了。请求可以说是线程组里的基本单位了,请求有有蛮多种的,最常用的就是http请求。所以我们介绍的时候用http来介绍,后面涉及到数据库直连的时候,我们会继续介绍JDBC Request。

软件接口测试工具Jmeter使用方法详解(一)

到这里,应该就很熟悉了吧。http请求名称和注释和前面的一样,不多说了。在下面的web服务器里涉及到协议,一般指http或者https,服务器名称或ip即指对应的域名或者ip地址,这里不涉及到具体的路径。端口号的话,根据接口清单来。http请求里的get/post等方法选择、路径填写、内容编码(一般是utf-8)等都是要根据接口清单来的。

什么?接口清单是什么?接口清单就是根据api接口文档提取出的一些列包括了接口三要素(url+方法+参数+返回值),正好与这里要填的信息是一一吻合的。下面的同请求一起发送参数包括content-type和post及put等需要提交数据的接口。

考虑到同一个测试计划下,有很多接口在web服务器里的协议、服务器名称、端口号和内容编码等都是一致的,为了方便,可以添加一个HTTP请求默认值。将这些一样的东西放到请求默认值里,后面再添加http请求的时候就不需要再次填写了。

添加的方法是 右键单击测试计划,添加 --- 配置元件 --- HTTP请求默认值。在添加的时候我们可以看到还有一些CSV数据文件设置、HTTP信息头管理器。前者是我们做参数化的重要手段,后者也是比较常用的,主要用来设置HTTP信息头里一些共用的东西,比如说”User-Agent"、“Pragma"、”Referer"等属性。

像HTTP请求默认值、CSV数据文件设置和HTTP信息头管理器既可以在测试计划的维度上设置,也可以在线程组的维度上设置,我们一般推荐的是在线程组的维度上设置。因为线程组覆盖的请求更少,更方便精确控制。

基本上,Jmeter的基本框架:测试计划--->线程组--->请求,我们就有了基本的了解。配合以接口测试的逻辑和接口测试的数据,就可以开展基本的get、post、put等方法的接口测试了。

可是测试的结果到底是怎么样的呢?我怎么样才能够看到结果呢?这就需要用到另外的组件了,一般常用的是结果树。添加方法是右键点击测试计划,添加---监听器---查看结果树,如下图所示:

软件接口测试工具Jmeter使用方法详解(一)