一、Jmeter简介
Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。
Jmeter具备高移植性,可以实现跨平台运行。
Jmeter可以实现分布式负载。
Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。
Jmeter具有较高扩展性。
二、Jmeter安装
1、快速下载:https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/ 2、文档地址:http://jmeter.apache.org/usermanual/get-started.html 3、需要安装JDK8(或更新),建议安装JDK环境 4、免安装,解压即可使用,直接使用即可。双击 JMETER_HOME/bin/jmeter.bat 启动
三、 Jmeter的目录文件介绍
bin: 核心可执行文件,包含配置 jmeter.bat: windows启动文件 jmeter-server.bat:windows下启动负载生成器(肉鸡)服务文件 jmeter: mac或者Liunx启动文件 jmeter-server:mac或者Liunx下启动负载生成器服务文件 jmeter.properties: 核心配置文件 设置默认语言:language=zh_CN 配置远程肉鸡IP和端口(服务器):remote_hosts=123.123.123.132:1099,234.234.234.234:1099 肉鸡上配置:server_port=1099 输出报告的配置,480行左右 extras:插件拓展的包 Lib:核心的依赖包 Ext:核心包,协议包 Junit:单元测试包
四、Jmeter工作原理
向服务器发送请求到接收相应的过程。
五、?Jmeter进行接口测试流程步骤详解
1、接口测试流程
1.右键点击线程组添加?HTTP请求,此时在线程组下面出现HTTP请求选项。点击该选项,出现HTTP请求界面。如下
服务器名称或IP填你的服务器名或IP地址:192.168.96.8。 端口号填接口所用的端口号:如:8081 connect表示连接时间,比如10000毫秒;response表示响应时间,比如10000毫秒。(可以不写) Implementation选HttpClient4;(可以不写)协议填http;Content encoding填utf-8。 路径填接口地址,比如登录接口/api/user/mobileLogin.jsp、/safe/0.0.1/JFFW/urlGenerate?access_token=f4fa6e9d-4302-4b68-b365-8539c06eca3f 添加参数,比如名称为username值为13246767401,名称为:password值为liang521 ? ?(或者填写你需要的请求报文) ----------------------------------------------------------------------------------------
2.在这里的参数区域分为:parameters和BodyData
①parameters:在这个中可以分开写,名称写参数名称 ? ?值就写参数需要请求的报文。 里面是键值的格式,如:
?globalInfo ? ? ? ? ? ? ? ? ? ? ? ? ?{"fwsid":"credentials-client","fwid":"fe07501238e84f7a967036eba3480abe","qyid":"110101MXB6CK9617","jrfs":"app"} data ? ? ? ?[{"fp_dm":"11001571071","fp_hm":"53744125","jshj":"3998.00"}] ? ? 数组的格式 ? ? ? ? ? ? access_token ? 1234567890987654321123456789876543
②BodyData :在这里可以把所有的报文写到一起,中间用逗号分开。如globalinfo和data参数。
? ?1.如果使用Body Data进行参数化,一定要加上http请求头信息管理器的json格式类型:如 Content-Type: application/json ? ?2.请求报文如:
{ ? ? "data":[{ ? ? ? ? ? ? "fp_dm":"111001571071", ? ? ? ? ? ? "fp_hm":"53744125" ? ? }], ? ? "globalInfo":{ ? ? ? ? "fwsid":"credentials-client", ? ? ? ? "fwid":"fe07501238e84f7a967036eba3480abe", ? ? ? ? "qyid":"110101MXB6CK9617", ? ? ? ? "jrfs":"app" ? ? } } ? ? 3.可以吧access_token写在路径的后面,如: /dxhytest/api/0.0.1/BXFW/queryBxzt?access_token=1234567890987654321123456789876543 ------------------------------------------------------------------------------------------ 3.右键点击HTTP请求添加--监听器--用表格查看结果。
4.右键点击线程组添加--监听器--用查看结果树、聚合函数。
2、测试方法
1.我们这里先是通过token接口获取到访问token的参数报文。 ?2.然后在其他接口中写入访问token的报文,然后依次写入其他需要的报文。 ?3.成功以后查看结果树中的内容。
3、相应断言:
这里的响应断言主要是针对HTTP请求返回的JSON字符串的,我们一般使用的是包括断言,就是返回的结果是否包含我们需要的信息。断言文本的截取可以在运?行结果树里进行,将结果显示类型改为Text(当然也可以JSON格式和Text格式对比着找),找出需要断言的信息。
4、定时器:
固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。对于“事务控制器”来说,定时器相当于loadrunner中的??think time(思考时间:实际操作中,模拟真实用户在操作过程中的等待时间)。
定时器的作用域
定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面);
当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;
如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入;
如果希望在sampler执行完之后再等待,则可以使用Test Action;
?感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,如果下面这些资料你用得到的话可以直接拿走:
① 自学必备的完整项目?(包括源码和环境,可以自己安装在本地使用)
② 测试计划模板,测试用例设计模块,功能测试报告模块等(涵盖了测试工作中所有模块)
③ 软件测试经典面试题(笔者根据自己10多年测试经验整理)
④ selenium+Python(Java)自动化测试实战.pdf,(包括了Python以及Java自动化的所有知识点)
⑤???软件测试(自动化测试)学习路线图(从此自学有了方向不在迷茫)?
⑥??简历模板
????????在我的QQ技术交流群里整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号:730755722?(?备注CSDN777)
|