jmeter性能测试报告_用 JMeter 做接口测试的优劣浅析

0064c9dc9106278a23ad39d031d819e8.gif

    2018年由软件质量报道做的调查报告表明,受调查的测试人员中约有40.67%的人使用JMeter作为接口测试的自动化测试工具(排在商业化或者开源工具中的第一),剩下的为Postman(28%),以及SoapUI(17.33%)。不过值得关注的是另外还有44.13%的采用了自研工具,说明可能现有的开源工具不能满足需求,更多的采用了自己研发的方式。那今天我们就来看看JMeter做接口测试的优点和不足,以及怎么解决这个不足。

JMeter接口测试的优势

  1)JMeter比较轻量级,并且开源,社区接受度高,比较容易入门。

  2)JMeter提供了BeanShell编程能力,可以写出比较灵活的测试脚本。

  3)JMeter的社区比较完善,提供了比较丰富的协议支持。比如除了支持常见的HTTP协议之外,还可以直接通过JDBC Sampler连接数据库,把期望的测试结果存入数据库中,直接对测试结果进行验证。在编写测试脚本过程中,可以将不同的协议调用使用同一个脚本进行组合调用,写出比较复杂的测试用例。

  4)JMeter提供了比较高级的扩展能力,允许自己定义和扩展新的协议支持,比如扩展支持阿里提供的Dubbo协议的JMeter插件等。

  5)JMeter提供了HTML测试报告和Jenkins集成的能力,比较方便地实现一些基础的持续测试。

JMeter接口测试的不足

  JMeter作为接口测试方案大概有以下的一些问题:

  1)脚本的灵活性。虽然JMeter提供了一定的BeanShell编程能力和自定义协议的扩展能力,可以让脚本开发人员有一定的灵活性,受制于JMeter本身的限制,与开发人员直接使用语言进行接口测试相比,灵活性还是相对不足。

  2)报告的能力。JMeter提供了HTML报告,但是JMeter本身的测试报告主要用于性能测试,反映的更多是性能测试层面的结果。而且配置过程比较复杂,在团队成员分享报告等方面比较麻烦。

  3)持续集成。利用第三方的Jenkins插件、Ant和Maven等,能与JMeter进行一些基本的持续测试集成,但是对于完全自动化所需的测试环境的管理等功能支持不足,配置过程略嫌麻烦。

  4)测试脚本和测试结果的管理:脚本和结果基本都是本地管理,无法做到在线管理。

优化的JMeter接口测试方案

  理想的基于JMeter的接口测试方案能够弥补上述劣势,包括需要从团队和工具的层面补上短板。

  JMeter脚本的灵活性不足的问题可以通过团队成员的合理搭配来解决。JMeter提供了较为完善的扩展机制,通过扩展可以支持不同的协议和函数,这些扩展处理的插件和函数能让编写测试脚本变得更加简单。JMeter的扩展需要对Java比较了解,并且掌握JMeter的扩展机制。JMeter的扩展开发是一次性的,在完成插件的开发之后,由脚本编写人员基于扩展的插件和函数进行脚本编写,从而快速完成接口测试。因此比较好的团队搭配为:

  1)一个、或者多个了解JMeter扩展的测试开发人员,主要负责相关扩展功能的实现,以及报告的定义和持续集成相关的一些开发工作。

  2)JMeter测试脚本编写人员,主要负责基于JMeter内置和自定义扩展插件的脚本开发,如果发现有时候脚本开发过程中不方便的地方,提交开发需求由测试开发人员对JMeter进行扩展实现。

  该方案剩下的所需的测试报告、持续测试集成、测试脚本和结果的管理需要额外的一些定制工作后才能够满足需求。

e56ee5e86c2769370519e269930d5356.gif推荐阅读

点击阅读☞利用Jmeter做一个简单的性能测试并进行参数化设置

点击阅读☞Jmeter 集合点详细讲解

点击阅读☞用Jmeter做分布式测试的一些技术点……

点击阅读☞性能测试中级探索——Jmeter Beanshell

点击阅读☞用 JMeter 测试 MySQL 数据库

上文内容不用于商业目的,如涉及知识产权问题,请联系小编(021-64471599-8017)。

d1cee1beb3f5e7d8fc3284558b7d3f6d.gif96331250c1577acf6a135a4c20e2ef53.gif221d5b82fc835b3a97af4bba0de01262.png爱我请给我好看!96331250c1577acf6a135a4c20e2ef53.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Hibernate

Hibernate是对象/关系映射(ORM)的解决方案。就是将java对象与对象关系映射至关系型数据库中的表格与表格之间的关系。 hibernate各个组件的关系 核心组件: Configuration类:用于读取Hibernian配置文件,并生成Sessio&am…

研究了一堆英语学习软件,发现了一个美国宝藏口语App,国内也能用!

图片来源:爱奇艺《一年一度喜剧大会》最近看《二喜》看到逗逗的这句话,我真的太同感了——一个人不知道做什么的时候,好像总会想到学英语这件事。“英语好”确实可以成为一剂强心针——更好的学业机会和更好的职业选择。《当代国人英语学习调…

jdbctemplate 开启事务_Spring(四):事务管理

事务首先,我们要知道事务是什么构成单一逻辑工作单元的操作集合称为事务事务的ACID特性原子性:不可分割的最小操作单位,要么同时成功,要么同时失败一致性:事务操作前后,数据总量不变隔离性:多个…

LeetCode 58. 最后一个单词的长度

1. 题目 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。 如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组…

prompt终于在机器人领域杀疯了

编|杜伟、陈萍源|机器之心谷歌机器人团队等在机器人领域构建了一个多任务 transformer 模型,显著改进了对新任务、环境和对象的零样本泛化。我们知道,机器学习(ML)多个子领域(如 NLP 和 CV&…

python打开excel数据库_使用python导入excel文件中的mssql数据库数据

我试图用python导入excel文件中的mssql数据库数据。我的数据在excel表格中的顺序不正确。e、 g它显示第1列数据,然后是第3列,第2列,然后是第4列,依此类推。我使用以下脚本:import pyodbcimport csvconnection pyodbc.…

雷鸟安装的插件

lightning日历功能 同步lightning和google日历的插件:provider_for_google_calendar 使用可以参考:http://jackbin.blogspot.com/2008/02/lightning-5.html 导入OE邮件时用了ImportExportTools转载于:https://www.cnblogs.com/cerxp/archive/2008/09/28/…

LeetCode 66. 加一

1. 题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解…

ChatGPT的前世今生

作者|符尧等整理|李rumor最近有幸看到了一篇十分深度剖析GPT系列模型的文章,读到后赶紧与作者联系,没想到他们很快就翻译成了中文,在这里分享给大家。英文原版:https://franxyao.github.io/blog.html作者:符…

文件管理(一)

文件是同一类型元素的有序集合,是内存与外设间传输数据的渠道。一些外设如显示器、键盘、打印机等都可以看作文件,但最常用的还是磁盘文件,这也是本章我们主要讨论的对象。 Delphi继承了Object Pascal的文件管理功能,并有很大的发…

LeetCode 95. 不同的二叉搜索树 II(递归)

1. 题目 给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。 示例: 输入: 3 输出: [[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树:1 3 3 …

离谱!以AI数据标注为名,偷拍女性上厕所?

源|新智元文|好困 David你绝对想不到,自己在家上厕所的「实时动态」,不仅被拿去给AI做了训练数据,而且还被发到了网上!最近,《麻省理工科技评论》在一篇万字长文调查中,就曝光了这样…

treemap怎么保证有序_干货!208道面试题教你怎么通过面试!

[如您对本文感兴趣,请点击标题下方蓝色“拓达IT训练营”添加关注,每天都有精彩实用文章呈现给您]一、Java 基础1.JDK 和 JRE 有什么区别?2. 和 equals 的区别是什么?3.两个对象的 hashCode()相同,则 equals()也一定为 …

看美女无数

看美女无数——代腾飞 2008年9月30日 于成都漫漫长假,却不知如何渡大千世界,却找不到去处只好独自骑着车儿压马路 来来往往,美女无数虽闭城不出,却也大饱眼福知足,知足 坐看春熙路,看美女购物熙来攘往&am…

LeetCode 107. 二叉树的层次遍历 II(队列)

1. 题目 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回其自底向上的层次遍历为…

什么是document对象?如何获取文档对象上的元素?_dom对象

DOM对象1. DOM树当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),通过 HTML DOM对象,可访问 JavaScript HTML 文档的所有元素。HTML DOM 模型被构造为对象的树。节点(Node):HTML文档…

用python生成云词汇_用python生成词云wordcloud

代码如下:import wordcloudimport jiebaexcludes{"将军","却说","二人","不可","荆州","不能","如此","商议","如何","主公","军士","左右&q…

JavaScript在内层循环中断外层循环

很少见的用法…… var elem1 [1,2,3,5,6];var elem2 [7,5,0];label1 : { for (var i 0; i < 10; i) { for (var j 0; j < 10; j) { if (elem1[i] elem2[j]) { break label1; } } }} 转载于:https://www.c…

综述论文:机器学习中的模型评价、模型选择与算法选择!

源&#xff5c;机器之心本论文回顾了用于解决模型评估、模型选择和算法选择三项任务的不同技术&#xff0c;并参考理论和实证研究讨论了每一项技术的主要优势和劣势。进而&#xff0c;给出建议以促进机器学习研究与应用方面的最佳实践。论文链接&#xff1a;https://sebastianr…

阿里巴巴后台的使用体验

今天花了点时间&#xff0c;使用了一下阿里巴巴的会员后台&#xff0c;感叹一句“它的成功是有它的道理的”。在功能模块的使用上&#xff0c;它都提供了帮助&#xff0c;这种帮助不是简单的一个列表或者一篇文章&#xff0c;而是一种层次性的服务。首先会有一个所对应的功能模…