Fork me on GitHub

Jmeter入门 Mac版

前言  

  上篇已经给大家介绍了一款自动化测试工具--locust。从介绍中可以我们知道locust是基于python语言进行自动化测试,所以需要有python基础。而今天要给大家介绍的是Java开发常用并且可以说是官方标配的工具--Jmeter。

安装配置

  因为Jmeter是使用JAVA写的,所以使用Jmeter之前,需要安装JAVA环境。(本人目前使用的是Jmeter 5.4.1 官方推荐搭配jdk1.8+使用)

  在这里给大家贴上Jmeter和Java下载地址:Jmeter 、 Java

  Java下载完后还需要配置环境变量,这里也简单的介绍一下

  1、命令行运行'vi .bash_profile',在最下面添加JAVA_HOME和PATH.

 

 

   2、很多同学不知道Java安装路径,这里教大家一个简单的命令 ‘which java’

 

  3、执行'source .bash_profile' 或者在 .zshrz内加上‘source ~/.bash_profile’

 

 

   4、执行 ‘java -version’查看java环境是否配置成功

 

 

   5、 将下载的Jmeter解压,得到以下目录结构,这里就简单介绍lib和bin这两个包。    

 

 

  5.1、jmeter目录下的lib和java里的lib是一样的概念,主要存放的是各种依赖(官方提供了一些通用的jar,也可以往里面添加第三方/自定义jar)

 

  bin目录主要存放核心的运行文件、配置文件、日志等

 

 

   6、Jemter其他配置

  6.1、永久汉化--修改jmeter.properties文件,全文搜索language,并修改此处为‘language=zh_CN’.(注意将前面的“#”去掉)

  6.2、Jmeter快捷开启--对运行文件进行alias。编辑‘vi .bash_profile’,输入`alias jmeter="/Users/Jackpot/Downloads/apache-jmeter-5.4.1/bin/jmeter ; exit;"`

  6.3 只需在命令行输入alias别称就可以快速开启jmeter.(我这里写的别称是“jmeter”)

 

  6.4 如果不进行6.2 6.3这两步设置,那么每次启动jmeter就必须输入全路径/进入jmeter的bin目录执行`sh jmeter`  

 

 注意:dos控制台是不能关闭的呦。一旦关闭,启动的Jmeter工具也会自动退出。

测试请求配置

  一、新增线程组。

  线程组用来模拟用户。一个线程组模块可以包含多个线程,每个线程代表一个用户,这样可以模拟高并发下的请求,并根据网站的响应信息来判断网站的相关性能。

  1.1 线程组的基本配置

 

   1.2 、`在取样器错误后要执行的动作`解释

  继续:某一个请求遇到错误后,其他请求继续执行。我们在大量用户并发的时候,某个请求失败属正常现象。

  启动下一进程循环:如遇到错误后面的请求将不再执行,等下一轮再开始执行。例如线程组中包含登录和退出两个请求,若登录请求失败,退出请求将不再执行,等下一次重新迭代,从登录开始执行。

  停止线程:遇到错误就停止线程再也不执行了。例如线程组中有50个线程,其中某一个线程的某个请求遇到错误即停止线程不再执行,剩下49个线程继续执行。若线程错误的比较多,剩余的线程就较少,此时负载数量就不足了,测试结果不满足测试要求,因此一般不会勾选此项。

  停止测试:某个线程某个请求遇到错误,停止所有线程,也就是停止整个测试,但是线程中的余下的请求还是会执行完再停止。例如线程组中包含登录和退出两个请求,其他线程遇到错误,现在要全部停下来,线程组退出请求还是会执行,然后再停止测试。

  立即停止测试:遇到错误立即停止所有线程,即整个测试。

  二、 构建HTTP请求

 

  下面的配置对于Java开发已经很熟悉吧。和Postman风格还是有那么几分相像的。

 

   注:我这里都是使用的json格式的请求参数上,如果是文件上传,可以勾选上面的`对post使用multipart/form-data`

  三、封装请求头

 

 请求头的封装是最简单的,只需要从WEB页面上讲请求头全部复制,然后粘贴就行

  四、添加断言

 

   这里我推荐使用BeanShell断言--BeanShell是基于Java语法的脚本语言,通过BeanShell可以对请求数据、响应数据或环境变量进行更加灵活的处理和判断。

   关于BeanShell语法,可以参考JMeter使用BeanShell断言

 

 

   BeanShell断言中可以通过ResponseCode、ResponseHeaders及pre.getResponseDataAsString()来分别获得String格式的响应状态码、响应头、响应体数据,结合if判断通过变量Failure=false或Failure=true来设置断言是否通过,当设置Failure=true时,还可以设置FailureMessage来设置失败原因。

  

  从上面的脚本可以清晰明了的看出来,完全就是java的语法,甚至还支持导包。说到导包我还得在提醒一句--导入的包必须是在Jmeter/lib内有的jar包,如果不存在可以手动添加到lib内

  五 察看结果树  

 

  页面上需要进行配置的地方也很少,有用的就两个地方--请求/响应格式、显示的日志内容

 

 

  六 执行启动

  这个页面给大家说一下红色框里面的内容,这两块内容都是第一步创建`线程组`时创建的持续时间和周期,具体的含义就是“4个线程循环一次,持续时间为10s” 

   当⚠️标示旁边出现红色数字时,表示程序运行过程中出错了,红色的数字就是错误的个数。点击⚠️,下面就会出现具体的错误日志。如上的日志就是说BeanShell断言错误,我的错误原因是因为未在jmeter/lib内添加json.jar 直接导入org.json.*。在网上下载相应的jar文件并放到lib目录下,再次运行就可以了。

posted @ 2022-01-18 11:09  JackpotHan  阅读(970)  评论(0编辑  收藏  举报