在为大家介绍性能测试工具以前,先让我们一起回顾一下什么是性能测试。

1、为什么需要性能测试?

举个例子。下图是一张交通图。图中的车流类似于性能测试中的数据,图中的车道、十字路口就相当于数据流量的规则和约束。

正常情况下,车流按照规则指示行驶,那么,该路段就能维持正常的使用。但往往,总会有一些小意外出现,比如追尾、塞车等导致道路堵塞。为了规避出现这些问题,降低突发状况的发生,因此性能测试的用处就来了。

再举个2个例子。如果你想登录某乎提问,却发现,自己输入用户名/密码后提交,结果等了接近1个小时才登上。你会不会想打人?

又假设你登录银行APP去支付房贷,并且这是还款最后一天,如果没有支付成功,就必须多付10%的超期费用。结果你在APP上操作成功后,过了2天,你的还款记录才上传到银行,因此你必须多付10%的超期费用。此时,你会不会想砸手机?

基于这些奇葩现象存在的可能性,这也就使得我们必须对软件产品,进行性能测试。

那么,性能测试的测试过程是什么呢?哪些测试工具适合做性能测试呢?别急,下面为大家一一介绍。

2、性能测试的流程

性能测试就是通过自动化的测试工具,模拟多种正常、峰值以及异常负载条件下可能出现的情况,来对系统的各项性能指标进行测试。性能测试工程师通过获取软件产品及其基础结构的相应数据,从而确定产品可以接受的性能参数,维护产品的正常运转。

性能测试的过程主要包括3大步骤。分别是建模、仿真和分析。下面我们来详细说一说具体操作步奏。

一般情况下,工作负载模型通常是基于服务级别协议和业务需求而设置的。常见的示例,包括事务数、并发用户数和响应时间。

“直截了当”的模型,通常容易遗漏诸如上图,道路交通瓶颈所产生的请求等。尽管有人可能会说,几百个并发用户,不太可能同时按下“提交”。但是如果像双十一0点清空购物车那样的状况下呢,真的发生了又该如何处理呢?

所以,我们就做相应的性能测试。

首先,我们需要在一台或几台PC机上,模拟成百或上千的虚拟用户,同时执行业务的情景,并对应用程序进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。

然后,通过可重复的、真实的测试,真实地度量应用程序的可扩展性和性能,确定问题所在,以及优化系统性能的方式方法。

当然,通过这些操作,我们就能预判系统的承受力,为终端用户规划整个运行环境的配置,提供有力的依据。

3、性能测试工具大盘点

对于很多测试团队来说,在进行测试前,通常会出现一套测试工具用到底的情况。比如,任何测试都只用JMeter。这其实是不对的。

对于任何性能测试来说,都需要根据情况,选择不同的测试工具。并且,在测试前,我们需要清楚的了解这些工具的优缺点,针对测试对象不同,合理使用工具。不得不说,有时候即使选对了工具,也可能出现无法顺利融入质量检查流程的情况。为什么呢?因为测试人员的能力、对工具的熟知度、测试难度等等,都可能影响性能测试工具发挥自己的优势。

因此,今天给大家简单盘点一下3款主流好用的性能测试工具,以便测试新手更清楚的了解他们的优缺点。

1)杰米特

Apache JMeter 是协议级别的负载测试工具。它可用于测试Web应用程序中静态和动态元素的加载时间。测试人员可以模拟服务器,服务器组,网络或对象上的繁重负载,以测试其优势。

JMeter的优点:

易于安装。它可以安装在装有Windows、Mac或Linux的任何桌面上;
它具有用户友好的界面,或可以在命令行界面中使用;
该测试IDE允许测试从浏览器或本机应用程序记录;
能够从流行的响应格式(HTML、JSON、XML或任何文本格式)中提取数据;
易于使用的插件。例如,用于数据分析的可视化插件。

JMeter 的缺点:

学习曲线很高,因此需要熟练的测试人员;
它不支持JavaScript,并且扩展不自动支持AJAX请求。
使用CSRF令牌之类的动态内容,或使用JS更改请求的复杂应用程序,可能很难使用JMeter进行测试;
GUI模式下的内存消耗很高,这会导致大量用户出错。

2)水豚

Capybara广泛用于Rails、Sinatra、Merb等Rack应用程序的端到端、验收和集成测试。它在无头浏览器上运行测试。

水豚的优点:

强大的同步功能,无需添加手动等待异步过程完成的功能;
它具有一个直观的API,可以模拟应用程序上的实际用户操作。例如,用户不会单击隐藏的元素/链接,因此可以避免它们;
不可知论的司机运行测试(无需更改代码),当你从一个驱动程序切换到另一个;
内置对Selenium的支持。

水豚的缺点:

使用多个驱动程序进行测试时,会占用大量内存;

这可能很慢,因为它会加载整个应用程序堆栈。或由于调用了许多控制器,模型或视图。另外,默认情况下它不会运行JS(包括AJAX调用)。

由于模型/控制器,文本或设计的微小变化,测试变得脆弱。

难以调试。例如,在超时或JS驱动程序错误的情况下。

3)Selenium WebDriver

Selenium WebDriver是Selenium套件中,最受欢迎的测试工具。它具有用于测试现代复杂Web应用程序的面向对象的API。它是由Selenium开发的,目的是支持动态网页(其中页面的元素可能会更改,而无需重新加载页面本身)。

Selenium WebDriver的优点:

能够跨Firefox、Chrome、IE等网络浏览器进行测试;

这些浏览器可以在Windows、Mac或Linux等平台上使用;

独立使用C#,Java,Perl,PHP,Python,JS(Node)和Ruby作为脚本语言;

测试Web应用程序上类似用户的操作;

在多台计算机上并行执行可以节省时间;

可用于更复杂的测试,例如生产监控和负载测试;

有大量的文档和一个大型的网络社区;

Selenium WebDriver 的缺点:

它需要经验丰富的测试自动化工程师;

由于元素在使用AJAX的应用程序中等待,因此很难进行测试维护;

用户需要学习和使用不同的框架来标准化测试过程;

如果不遵循正确的实施方法,将会减慢测试速度。

好了,说了这么多,赶紧拿出小本本记录重点吧。今天就聊到这里,我们下期再见~


最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到 902061117,群内会有不定期的分享测试资料。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

轻松做性能测试,月入3万的主流测试工具大揭秘相关推荐

  1. 轻松做性能测试,月入3万的主流测试工具 大 揭 秘

    在为大家介绍性能测试工具以前,先让我们一起回顾一下什么是性能测试. 1.为什么需要性能测试? 举个例子.下图是一张交通图.图中的车流类似于性能测试中的数据,图中的车道.十字路口就相当于数据流量的规则和 ...

  2. 学了Python,可以做哪些月入过万的兼职?

    如果学了Python不做全职工作,那么可以靠哪些兼职赚到钱? 今天我们就来看看一位有着4年开发经验的老鸟的分析回答,希望对你有所帮助. emmm... 以我差不多四年的 Python 使用经验来看,大 ...

  3. steam搬砖项目,新手也能轻松上手。月入1万+

    今天给大家分享一个不需要学历,经验零基础也可以轻松上手操作的项目,steam搬砖项目.这个项目也不是互联网的新项目而是实际落地操作运营两年以上的项目. 完全可以利用空闲时间把这件事情完全搞定,普通人也 ...

  4. 拳王虚拟项目公社:微信朋友圈卖虚拟资源教程怎么做,月入过万发方法

    众所周知,微信现在已经成为了营销的热土,10亿的微信用户摆在那里呢.那么拳王今天又来说说用微信朋友圈卖教程的项目. 这个项目虽然单卖的利润不高,但是我们又不需要成本,每天的工作时间也很充裕,只需要在朋 ...

  5. 做咸鱼能够月入10万?我来揭秘一下。

    推荐阅读: <该抄底了...> <有人说我割韭菜...> 1 月入10万? 大家好,我是微笑哥. 我经常会在圈内看到一些做咸鱼的推广,收费 1X99 元承诺做咸鱼可以月收入大几 ...

  6. 我把它当副业月入3万多,新手月入过万的干货分享!

    如果有人问:什么是最幸福的事情? 我的回答一定是:你的朋友带着你一起赚钱! 我的朋友小康(化名)去年在虾皮shopee卖个货,作为纯新手小白,收入竟然暴涨到81497!!!平均每月收入是对象的2-3倍 ...

  7. 资深程序员感叹:表妹成绩好却无奈辍学开理发店,月入6万,上大学没用!网友:那是你没用!...

    读大学到底有没有用?一网友举出自己表妹高中成绩好却辍学开理发店月入6万的例子,想以此来论证,百无一用是书生,遭到了一大波吐槽! 有人对月入6万提出了质疑,也提出疫情时期生意不好做,月入6万不会那么稳定 ...

  8. 【爆品】馥兰朵想买找谁?代理能月入过万吗?

    眼睛可以看出美,看出年轻,爱美从护眼开始.随着年龄的增长,眼部鱼尾纹Z先显现,经常加班熬夜从眼部黑眼圈就能看出,那么,选择一款好的眼霜就必不可少.馥兰朵紧致眼霜让黑眼圈,脂肪粒跟你说拜拜,还你美丽双眸 ...

  9. [每日app二]月入60万多嘛?单词锁屏的潜力!

    抢了用户的时间,就是抢了用户的金钱! 单词锁屏,一个开发难度不太大,但仅仅360手机助手下载就是每周4万!拉风- 对于搞app的同学来说,搞个锁屏,还不是玩似的,但是要定位好,玩得好,那就有难度了.最 ...

最新文章

  1. Xamarin Visual Studio不识别JDK路径
  2. java 不变式_solr - Solr错误:在请求处理程序中使用不变式时,QueryComponent.mergeIds(QueryComponent.java:940) - 堆栈内存溢出...
  3. TensorFlow2简单入门-图像加载及预处理
  4. kaggle房价预测问题
  5. python numpy读取数据_python使用numpy读取、保存txt数据的实例
  6. 干货收藏!Python完整代码带你一文看懂抽样
  7. rgba与16进制互相转换
  8. CBoard项目学习
  9. vscode中文设置不生效_vscode 无法设置中文怎么办
  10. elementui 做删除,分页页码不正确
  11. lookup基础用法
  12. [Pytorch系列-25]:神经网络基础 - 单个无激活函数的神经元实现简单线性回归 - 2
  13. 锐捷服务器虚拟化技术_信息化的好拍档,锐捷助力南昌市第五医院再迎新征程...
  14. 神经网络实现猫的种类识别
  15. 英特尔核显驱动hd630_AMD与英特尔彻底失去合作关系?中止Kaby Lake-G更新支持
  16. 2020.11.09-2020.11.15工作周报
  17. Filter中chain.doFilter(req, res)的理解
  18. [Study]JavaWeb
  19. 2021全新工程隧道监控量测系统,持续更新中!
  20. java rtsp_rtsp网络协议的java实现

热门文章

  1. 判定考试成绩程序java_请大家务必按照平时交作业的要求,按时提交!否则会影响您的期末考试成绩。_学小易找答案...
  2. centos安装mysql怎么远程访问_centos上安装mysql并设置远程访问的操作方法
  3. 苹果发布会全汇总:最贵59999元 Mac Studio性能史上最强!iPad Air 最没诚意...
  4. 快手宣布任命金秉为首席财务官 向程一笑汇报
  5. 腾讯网易禁止未成年人本周六玩游戏
  6. 支付宝上线宠物防走丢功能
  7. 再延期!曝华为P50六月发布
  8. 中芯国际能靠14nm工艺翻身么?
  9. 华为Mate 40 Pro全新概念图曝光:这设计有点夸张了
  10. 拼多多:有营销号“骗粉博出位” 将用法律武器维权