1、JMeter安装配置

)登录 http://jmeter.apache.org/download_jmeter.cgi ,下载与自己的平台相对应文件;
)安装JDK(.6以上),配置环境变量JAVA_HOME(C:\Program Files\Java\jdk1..0_17) Path(%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin)CLASSPATH(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar),通过javac和java -version验证开发环境是否配置成功;
)将下载Jmeter文件解压,双击/bin/jmeter.bat运行Jmeter。

2、使用JMeter建立接口测试

【需求】某组机器是Android和iOS输入法接口服务器,有很多重要的接口,例如:升级,网络开关,热词等。现在有3台机器过保要下线,新申请了3台机器,需要验证一下这3台机器接口的正确性。
【测试步骤】
)确认接口
首先从开发人员那里获取接口文档,接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。
如果当前项目没有接口文档,则可以使用fiddler对APP进行抓包确认。在手机上对APP进行操作,然后在Fiddler中可以抓取对应的网络交互信息。在抓取的信息中可以看到接口请求方式、接口请求URL、接口请求参数、接口返回参数。
)在JMeter中创建测试用例
①在测试计划中添加一个线程组(在测试计划上右击,添加-Threads-线程组)
测试计划:包含一个测试的所有内容,包含所有的控件,属性,变量。所以一个jmx文件中只有一个测试计划。注意:可将一些不常变化的数据存入测试计划的变量,方便在测试计划内调用(例如服务器ip,端口等)。
线程组:一个虚拟用户组,线程组内线程数量在运行过程中不会发生改变。注意:线程间变量相互独立。一个测试计划内可以包含多个线程组。
可定义内容:取样器错误后要执行的动作设置为继续,即继续执行线程;线程数设置为1;Ramp-Up Period即所有线程启动的时间,单位s,如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/=25秒,通过这个参数可以设置每个线程间的启动间隔,防止给电脑造成太大性能压力,这里设置为1s;循环次数设置为1,如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止运行脚本;

②在测试计划中添加HTTP请求默认值(在测试计划上右击,添加-配置元件-HTTP请求默认值)
将服务器IP和协议等一些不常变化的数据存入测试计划的变量,这样可以避免在其他请求中设置同样的变量,同时便于修改服务器IP,如本次需求中需要测试三个服务器的接口,只需要修改HTTP请求默认值中的服务器IP即可使其他请求的服务器IP都生效。

在线程组中添加HTTP请求(在线程组上右击,添加-Sampler-HTTP请求)

将名称改为待测接口的名称;因在HTTP请求默认值中设置过请求服务器IP和协议,此处不需要再设置即可生效;在方法中选择HTTP请求的方法,我们项目中的接口方法使用的主要是GET和PUT;在路径中填入接口请求的URL;请求参数如果是GET方法的请求,请求参数直接写在URL后面即可;如果是POST的方法,则需要在Body Data中填入包含请求参数的数据。

HTTP中添加HTTP信息头管理器(在HTTP请求上右击,添加-配置元件-HTTP请求信息头管理器)

定义信息头,在其覆盖下的所有元件都会使用该信息头,例如定义在测试计划中的信息头,即该测试计划所有请求的信息头。在该案例中,因每个请求头信息可能不一致,所以在HTTP请求上添加HTTP请求信息头而非测试计划和线程组中添加。

 添加监听器(在线程组上右击,添加-监听器-察看结果树)

主要配置完成了,需要添加监听器以查看测试结果。这里使用察看结果树查看。

察看结果树:在结果树中会以树形结构展示每个接口请求的测试结果,包括取样器结果、请求、响应数据,在响应数据中可看到网络侧返回的数据,可以以接口文档中期望返回的参数做比较以判断返回是否正确。在结果树中通过颜色可以直观的看到接口测试的结果,绿色为通过,红色为失败。

3)用例生成与导出

Jmeter的用例格式为jmx文件,实际为xml格式。

  • 生成原则:

①每个功能模块为一个独立的jmx文件。增加可维护性(尽量不要将一个jmx文件放入太多功能,后期维护成本会很高);

②模块的私有变量保存在模块中,多模块共有的(例如服务器ip端口等)可以考虑存在单独的文件中读取。

③接口测试不要放太多线程。

  • 导出方法:

①编写测试用例

②文件——保存为——确定:

4JMeter运行模式及参数

  • GUI模式

打开已有的jmx文件(文件——打开),点击启动按钮运行

  • 命令行模式

①依赖:配置jmeter环境变量,将${jmeterhome}/bin加入Path变量;

②如果未加入环境变量,在执行的时候可以直接给出全路径或                      在${jmeterhome}/bin下执行。

命令:JMeter -n -t <testplan filename> -l <listener filename>

参数:

  • -h 帮助 -> 打印出有用的信息并退出
  • -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
  • -t 测试文件 -> 要运行的 JMeter 测试脚本文件
  • -l jtl文件 -> 记录结果的文件
  • -r 远程执行 -> 启动远程服务
  • -H 代理主机 -> 设置 JMeter 使用的代理主机
  • -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
  • -j 日志文件->设置JMeter日志文件的名称

举例:JMeter -n -t Interface.jmx -l InterfaceLog.jtl

接口测试之JMeter初探的更多相关文章

  1. 老李分享:接口测试之jmeter

    老李分享:接口测试之jmeter   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...

  2. WEB接口测试之Jmeter接口测试自动化 (一)

    软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试. 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在 ...

  3. WEB接口测试之Jmeter接口测试自动化 (一)(初次接触)

    软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试. 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在 ...

  4. WEB接口测试之Jmeter接口测试自动化 (二)

    通过逐个录入的方式,好不容易将需要测试几十个接口的300多个测试用例录入sampler-http请求中,固定的测试环境跑起来也还 感觉良好.不料在新服务器环境中跑用例时,问题来了:修改参数维护脚本等成 ...

  5. WEB接口测试之Jmeter接口测试自动化 (二)(数据分离)

    转载:    http://www.cnblogs.com/chengtch/p/6105231.html 通过逐个录入的方式,好不容易将需要测试几十个接口的300多个测试用例录入sampler-ht ...

  6. WEB接口测试之Jmeter接口测试自动化 (四)

    Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1. ...

  7. WEB接口测试之Jmeter接口测试自动化 (三)

    接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍了 ...

  8. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动

    转载:http://www.cnblogs.com/chengtch/p/6576117.html 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚 ...

  9. WEB接口测试之Jmeter接口测试自动化 (四)(持续构建)

    转载http://www.cnblogs.com/chengtch/p/6145867.html  Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkin ...

随机推荐

  1. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

    启动两个client,过了一会,停了其中一个,访问注册中心时,界面上显示了红色粗体警告信息: 查阅了很多资料,终于了解了中间的问题.现将理解整理如下: Eureka server和client之间每隔 ...

  2. Chrome 主页被篡改

    尝试恢复设置.重装chrome.改注册表均无果.最后意外发现解决方法无比简单:删掉桌面上的chrome图标,打开安装文件夹找到chrome.exe,随便改成什么名字.exe,比如baiduwcnm,重 ...

  3. LibreOffice openoffice 区别

    LibreOffice的初始版本号码被设置为与OpenOffice.org一致,故初始发布(2010年)即为第三版,并不存在第二版.第一版. 后来,甲骨文宣布停止OpenOffice.org的商业支持 ...

  4. SwipeBackLayout侧滑返回显示桌面

    SwipeBackLayout是一个很好的类库,它可以让Android实现类似iOS系统的右滑返回效果,但是很多用户在使用官方提供的Demo会发现,可能出现黑屏或者返回只是看到桌面背景而没有看到上一个 ...

  5. Androidn Notification的使用,解决找不到setLatestEventInfo方法

    转自:http://blog.csdn.net/songyachao/article/details/51245370#comments 今天使用4.0.3使用 Notification notifi ...

  6. 安卓程序代写 网上程序代写[原]BluetoothAdapter解析

    这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介 1.继承关系 该类仅继承了Object类; 2.该类作用 ...

  7. share a story on OSPF & BGP

    IP掌门把两个得意门生——BGP和OSPF叫到跟前,询问他们的修炼心得,以选择弟子传授大内心法——MPLS VPN.OSPF说:“小徒苦心研读路由原理,技术资料上万页,网络在我的围护下无环路,触发更新 ...

  8. Windows IOT 开发入门(准备工作)

    终于抽出空来了,将最近研究的东西记录下来,物联网,万物皆可联网.然后可以做到智能家居,智能生活,智能城市....一大堆.吹牛的就不说了. 在实际应用中都是一个个小的传感器在收集数据,同时把数据直接或者 ...

  9. HashMap的最大容量为什么是2的30次方?

    今天看HashMap的底层实现,发现HashMap的最大容量规定为: // 最大容量(必须是2的幂且小于2的30次方,传入容量过大将被这个值替换) static final int MAXIMUM_C ...

  10. imx6 lvds0 lvds1 display

    最近调试imx6的屏幕显示,笔记记录于此. 官方文档关于uboot参数的介绍: sin和dul参数已经测试过,sep和spl还没有验证成功. 1 单屏显示 说明:输入命令并按确定键, 观察系统启动过程 ...