为什么使用Jmeter:
• 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件
• 支持接口测试,压力测试等多种功能,支持录制回放,入门简单
• 相较于自己编写框架或其他开源工具,有较为完善的UI界面,便于接口调试
• 多平台支持,可在Linux,Windows,Mac上运行
用例生成与导出:
Jmeter的用例格式为jmx文件,实际为xml格式,感兴趣可以学习下自己定制生成想要的jmx文件。
生成原则:
每个功能模块为一个独立的jmx文件。增加可维护性。(尽量不要将一个jmx文件放入太多功能,后期维护成本会很高。)
模块的私有变量保存在模块中,多模块共有的(例如服务器ip端口等)可以考虑存在单独的文件中读取。
接口测试不要放太多线程,毕竟不是做压力测试,意义也不大。
导出方法:
编写测试用例
Jmeter运行模式及参数
GUI模式
打开已有的jmx文件(文件——打开)
点击启动按钮运行
命令行模式
依赖:
配置jmeter环境变量(windows下为将${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 my_test.jmx -l log.jtl -H my.proxy.server -P 8000
执行步骤:
JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。比如你在 C:\tools\apache-jmeter-2.11\bin 目录下执行以上命令,JMeter 会去该目录下寻找 test.jmx 脚本并把执行结果放在该目录。如果你的脚本在其他目录,而且想要把执行结果放在另外文件夹,可以使用绝对路径告诉 JMeter。
执行结果查看:
GUI界面打开聚合报告
在GUI界面创建一个聚合报告
聚合报告界面点击浏览,选中生成的.jtl文件,打开
Jmeter使用
Jmeter创建接口测试计划实例
测试用例应该作为测试的基础内容,而用例的结构可能划分,则是用例的基础(忽然在这里想说一下,用例仅仅是一项测试活动的纲要,有最好,没有的话能保证质量也OK。更不用说用例的格式问题,无论是表格还是导图,其实都无所谓!本文的用例是指jmx文件中的控件结构)。
• 模块名称(测试计划):每个模块独立划分为一个jmx文件(例如登陆模块),最好与接口类一一对应。对应的服务器信息,数据库信息等可存在这里。
• 数据准备:用于测试数据的准备(例如账号信息)。
• 结果查看:用于放置需要查看结果的控件(例如结果树)。
• 线程组:所有的接口测试用例放在线程组下,集中定义线程等信息
• 获取线程对应测试数据:用于获取针对独立线程的测试数据,例如在数据准备里面获得了账号信息,在这里根据账号信息去数据库获取对应的名称,ID等信息。
• 请求名称:用简单控制器为文件夹,内有不同的请求。简单控制器为一个独立的接口,不同请求对应不同的代码路径(例如成功请求,失败请求等)。建议请求名称最好用英文形式,否则后期持续集成或许会出现问题(no zuo no die!)。
• 在每条请求内放置正则匹配(用于应对需要返回值作为下次请求的参数的情况)以及断言。
• 界面布局、排版是否合理;文字是否显示清晰;不同卖家的商品是否区分明显。
2.功能测试
未登录时:
• 将商品加入购物车,页面跳转到登录页面,登录成功后购物车数量增加;
• 点击购物车菜单,页面跳转到登录页面。
登录后:
• 所有链接是否跳转正确;
• 商品是否可以成功加入购物车;
• 购物车商品总数是否有限制;
• 商品总数是否正确;
• 全选功能是否好用;
• 删除功能是否好用;
• 填写委托单功能是否好用;
• 委托单中填写的价格是否正确显示;
• 价格总计是否正确;
• 商品文字太长时是否显示完整;
• 店铺名字太长时是否显示完整;
• 创新券商品是否打标;
• 购物车中下架的商品是否有特殊标识;
• 新加入购物车商品排序(添加购物车中存在店铺的商品和购物车中不存在店铺的商品);
• 是否支持TAB、ENTER等快捷键;
• 商品删除后商品总数是否减少;
• 购物车结算功能是否好用。
3.兼容性测试
• 不同浏览器测试。
4.易用性测试
• 删除功能是否有提示;是否有回到顶部的功能;商品过多时结算按钮是否可以浮动显示。
5.性能测试
• 压力测试;并发测试
1,指出需要的新特性。可以记录下来,然后为其编写一个测试。
2,编写特性的概要代码,这样程序就可以运行而没有任何语法等方面的错误,但是测试会失败。看到测试失败是很重要的,这样就能确定测试可以失败。如果测试代码中出现了错误,那么就有可能出现任何情况,测试都会成功,这样等于没测试任何东西。再强调一遍:在试图测试成功之前,先要看到它失败。
3,为特性的概要编写虚设代码,能满足测试要求就行。不用准确的实现功能,只要保证测试可以通过即可。这样一来就可以保证在开发的时候总是通过测试了,(除了第一次测试的时候)甚至在最初实现功能时亦是如此。
4,现在重写(或者重构)代码,这样它就会做自己应该做的事,从而保证测试一直成功。
在编码完成时,应该保证代码处于健康状态--不要遗留下任何测试失败。
写过前段程序。
原文:https://www.cnblogs.com/lgh544/p/13083037.html