jmeter脚本的编写
前几天讲到了性能测试的入门,今日继续来讲解jmeter的使用,本文讲的都是比较细,希望各位耐心的看完。
一、jmeter的安装与打开
前提条件:给大家一个jmeter的安装包 百度网盘的路径如下:链接:https://pan.baidu.com/s/1Wu0pJHqeYv6pj67Fv3s3tw 提取码:7r5V
安装jdk(建议1.8) jdk-->java开发工具包 注意:一台电脑是允许安装多个jdk的,如何确认安装完好?cmd中,输入java -version,即可看到1.8
jmeter是开源免费的,所以只需要把压缩包解压即可使用,不需要过多的安装手续
启动jemter,如何启动?
会出现如下图的东西,不要急,稍等几秒钟会有东西出来
进入界面,这个图形界面叫做GUI
注意:原来的黑屏的那个小窗口,不要叉掉,切记切记
如果,你是mac电脑,也可以点击其他的两个文件启动
二、jmter的使用以及目录介绍
2.1 语言的切换
第一次解压,打开进入jmeter,默认是英文,其实从jmeter.log的日志文档中也可以看出来。比如,现在打开jmeter.log,第一行就看的到
那如果,你想把自己的jmeter变成中文版,怎么办呢?有两种办法;看你是想仅一次显示中文,还是想永久显示中文。
如果你想暂时这一次显示中文,怎么理解这句话呢?比如你此时设置成中文,关闭后,再次打开,还是显示英文,因为系统默认的就是英文
步骤:在jmeter中选择options--->choose language--->Chinese
如果你想永久的显示,不管什么时候打开,都显示中文,相当于“一考定终生”;步骤:去修改配置文件:jmeter.properties
建议在学习阶段:用中文来学习,至少看的懂字
2.2 Jmeter默认保存的文件路径在bin文件夹
比如:你刚刚弄完一个脚本,点击保存
当然,你也可以把脚本放在其他路径下,只不过,当你第一时间不记得自己放在哪里时,可以去bin目录下找找,试一下能不能找的到,也许因为某个时间点,你自己就无意间自动ctrl+s了,自己保存了都不知道
2.3 jmeter的文件目录
bin文件夹:jmeter的启动,配置文件、以及默认保存脚本(.jmx格式)等等
docs文件夹:放的是文档,里面有一些api,css,images等,api里面的一些接口文档可以进行二次开发
extras文件夹:这个是在持续集成时用的上
lib文件夹:里面放一些源码包,放一堆jar包;如果你对jmeter二次开发生成的jar包,就要放在这个lib路径下,如果你用的是第三方包,就要放在lib--->ext文件夹下
printable_docs文件夹:文档文件,放的是jmeter的帮助文档,但是这与官网的帮助文档不一样,有差别;
本地的这份从文件夹里面打开的帮助文档,是离线文档,仅适合当前版本;
在GUi界面中打开的帮助手册,那是官方文档,是最新的文档,有可能会与当前版本不一致,个别功能存在差异
2.4 jmeter的使用
一个完整的jmeter脚本,一般会包含 线程组+取样器+监听器
取样器:根据不同的接口协议,有不同的取样器
监听器:展示取样结果 不同的监听器从不同的角度展示取样结果
配置元件的优先级最高,是最先被执行的,此时我添加一个配置元件
那么执行顺序就是:
接下来,演示前程贷项目的注册接口,先打个样;前提条件:先拿到接口文档,知道接口的路径;填入参数和服务器等信息
启动:
保存:
注意:Ping 不通不代表网络不通,Ping 的通也不代表网络通;所以,我们一般用telnet指令,因为有的服务器是禁ping的
三、注意事项
3.1 服务器IP的填写
也可以填写域名,www.baidu.com
绝对不能写斜杠:www.baidu.com/ 此种写法错误 也不能写前缀:http:www.baidu.com
http协议默认端口80 80端口可以不写的,比如我刚刚在请求百度时,就没写
那么我们慢慢来看,之前请求的一个注册接口
查看结果树,显示注册成功,但,在写服务器ip时
为什么呢?这个服务器IP相当于一个地址,端口号相当于一个门牌号,路径就是具体根据线路找到某个房间。但是,你如果在路径框里还写服务器IP,那么就好比你已经进入了大门,本来马上要找对应的房间,结果又重新搜索哪个社区,哪个单元,有的绕路了
3.2 编码 utf-8
在http请求中- - -》内容编码只对请求体(request body)有效,对response body(响应体)无效
那么,请求百度网站,响应的乱码怎么来的呢?
因为jmeter的所有展示信息页面的编码,默认都是根据系统编码来的;现在windows系统的编码默认为gbk编码。不一样,所以要修改
如何修改呢?去配置文件jmeter.properties文件中修改,修改完后,把jmeter关闭再重启即可看到
注意:Jmeter的配置文件被修改,需要重启jmeter才能生效
问:以后所有的都改为utf-8的编码格式吗?
答:不一定要都改成utf-8,这个需要看返回的数据的要求格式是什么,有的是utf-8,有的是GBK,有的是gb2312,有的是BIG5;所以也不绝对
3.3 编码怎么用
当请求格式为参数时,请求的参数值中有 中文或者特殊符号时, 请求一定勾选“编码”,如果不勾选,要么直接报错,要么数据中的该字段显示乱码
另外,还有个建议:无论什么时候,这个编码最好都要勾选上,防止出错
3.4 消息头管理器中的Content-Type
charset是只能作用请求部分
四、录制脚本
1、怎么来录制脚本
http代理服务器录制脚本
1.新建线程组
2.添加http代理服务器 非测试元件
3.http代理服务器修改,端口、目标控制器、请求过滤器
点击启动,为什么报错?没有修改目标控制器
修改之后,再次启动,会出现正确信息
这个出现的小弹窗,不用管,也不要叉掉,这个你要是叉掉了,那在网页中点击录制脚本,就无效
因此,修改端口:8899;修改目标控制器 线程组2 ;再修改请求过滤器,添加建议排除
打开电脑本地的代理
保存之后,在浏览器中访问:www.lenmoban.com(任意一个网址都行,我这里只是随便举个例子)
就录制好了脚本
其实,jmeter初步使用起来,比较简单,流程均差不多;因此,我们可以总结一下jmeter工具使用的大致步骤:
1.添加线程组、取样器、监听器
2、取样器一般有http请求:填入服务器IP、端口号、请求方式、路径、传参(注意:编码小方框里均打勾勾选上)、消息头管理器填入Content-Type类型
3、查看结果树,查看响应数据,如果有乱码,就去配置文件改成相对应的编码方式
前提条件:你已经在windows上装好了jmeter,且jdk版本是1.8;
你已经拿到了接口文档,知道路径和要传的参数;
如果没有详细的接口文档,那就去抓包,抓包方式有几下几种:浏览器F12,Fiddler,wireshark 等等;
再不行,直接找开发人员要
而通过jmeter录制脚本,靠的是代理服务器,有的测试人员想偷懒或者要请求的接口实在太多,才用这种录制的方式,一般都是前一种自己手动添加,为什么?
因为,你输入一个URL,录制到jmeter工具中,发现线程组中,其实很多的其他的都要删掉,真正你需要用到的,就那么几个,所以有的时候还不如自己手动添加