Jmeter UI介绍
打开Jmeter后,我们可以把界面分成3个部分。
区域1是目录树,存在测试设计过程中使用到的元件,执行过程默认从根节点开始顺序遍历树上的元件。区域2是测试计划编辑区域,在这我们可以定义整个测试计划公用的全局变量,这些变量对多个线程组有,还可以对线程组的运行进行设置,比如”独立运行每个线程组”、”Run teardown Thread Groups after shutdown of main threads”等。另外,我们还可以添加测试计划依赖的Jar包,比如JDBC方式连接数据库的驱动。区域3是菜单栏。从左到右依次是:新建测试计划;选择测试计划模板创建一个新的测试计划;选择已经存在的测试计划并打开;保存测试计划;删除选的元件,如果元件是父节点,那么子节点的元件也一同删除;复制选的元件及子元件;粘贴复制的元件及子元件;展开目录树;收起目录树;禁用或者启用元件,禁用元件的子元件也会被禁用;本机开始运行当前测试计划,按线程组的设置来启动;立即开始在本机上运行当前测试计划;停止运行状态的测试计划,当前线程组执行完成后停止;停止运行测试计划,立即终止;清除运行过程中元件显示的响应数据;清除所有元件的响应数据,包括日志;查找;清除查找;函数助手对话框;帮助文档;插件Jmeter脚本录制
2.1 Jmeter HTTP代理服务器录制脚本
操作步骤:
第一步:右键测试计划,添加 配置元件–http cookie管理器。
第二步:右键测试计划,添加 threads(Users)–线程组。
第三步:选择测试计划然后鼠标右键,选择非测试元件–http代理服务器(http proxy server)。
第四步:配置并且启动http代理服务器。
常用配置项:
端口:要求未被其它应用占用,一般不需要更改。可以通过命令netstat -an查看即可。
目标控制器:该选项是用来指定所录制的脚本的存放位置的。建议直接选择前面所添加的线程组。
过滤器:过滤器不使用是不会对录制造成任何影响,但是在接口测试和性能测试过程中,我们更多的关注的是后端,因此可以考虑不请求页面中的静态资源请求,对之进行过滤。
常见的静态资源有:js、css、各种图片资源,不想录制,则可以通过排除模式来进行设置。正则写法如下:
.*\.js.*|.*\.css.*|.*\.jpg.*|.*\.png.*|.*\.gif.*|.*\.bmp.*
第五步:配置客户端
正常情况下,我们的客户端都是直接和被测服务器通信的,需要通过配置才能使之通过代理去访问被测服务器。根据客户端平台的不同,分为两种情况:
PC端:先以windows为例,Win7以下通过IE选项来设置。
IE选项-连接-局域网设置,勾选启用局域网代理。
地址:填写的是代理服务器的地址,即启动jmeter的机器的IP。
端口:填写的是jmeter的http代理服务器组件中所设置的端口。
而对于Win10及以上的系统,代理设置在系统设置的网络设置中:
设置方法同IE设置方法。
移动设备:则要求移动设备和启动jmeter的代理的机器在同一个局域网,直接通过修改手机的wlan选项(高级)来实现。
第六步:在客户端执行要录制的操作。
第七步:停止代理服务器,还原客户端的代理设置。
注意事项:
一定要区分客户端、代理服务器和被测服务器。如果以上三个角色是一台电脑,切记不要使用localhost去访问,否则代理无效。在录制过程中,尽量将无关的网络应用进行关闭,否则可能会被录制。
根本的解决办法,学会通过所生成的请求中的服务器地址和路径去识别是否是有效的请求。过滤器的使用原则:可以不用,一旦使用,则要求准确。另外,停止录制之后,一定要记得第七步的操作(停止、还原)!
代理录制的优缺点:
优点:
录制过程可控。适用于任何架构的产品(使用http协议通信的)。如果需要录制https的请求,就需要将生成的根证书安装到客户端上。缺点:
如果不能掌握过滤器,则录制到的脚本内容比较多,可读性较差。仅适用于http或者https的协议,其他类型的协议不支持。2.2 抓包手写
之前学习过抓包工具,我们也可以通过抓包获取相应的信息,然后手动填入Jmeter。这里以H5商城登录接口为例:
第一步:打开被测项目及抓包工具
第二步:找到被测项目的被测接口
因为此时需要测试的接口是登录,所以从抓包数据去找对应的信息即可;
第三步:从抓包工具中,找到对应接口的请求头、请求体信息
第四步:打开Jmeter,在测试计划中添加“HTTP Cookie管理器”,“HTTP信息头管理器”,再创建一个线程组,在线程组下新增一个HTTP请求的取样器,如图:
第五步:根据需要将抓包数据填入Jmeter
将headers数据复制,然后选择Jmeter中的HTTP信息头管理器,点“从剪切板复制”,再将一些没有必要的内容去掉,通常留下图内容即可(如有特殊需求,另外处理)
接着把请求内容复制到Jmeter中,并填写具体内容:
第六步:添加一个监听器“查看结果树”,接着运行脚本并查看结果。由于接口响应也是json格式的,可以在查看结果树种,改下默认显示方式为JSON。