• 13
  • 13
分享
  • 功能测试进阶,记一次简单的性能测试实践——软件测试圈
  • 曼倩诙谐 2021-07-19 13:14:36 字数 1994 阅读 1644 收藏 13

  功能测试对于测试人员来说并不陌生,功能测试执行的大体流程是根据需求说明书设计测试用例,测试执行,测试总结。同样性能测试的执行过程也是如此。然而,功能测试与性能测试的区别在于,功能测试是单用户,性能测试是多用户,是从1到N的量变。由于无法通过手工操作模拟多用户并发,因此需要借助工具来实现用户操作被测系统某场景的动作流程,也就是编写测试脚本。那么,如何开展性能测试呢?

  1、需求分析

  通常开发人员会提供接口文档以及非功能需求文档。标准的接口文档中描述了接口请求地址,请求方式,参数类型以及请求报文和响应报文示例。如果接口文档中描述内容不是很清楚,测试人员可以通过抓包工具比如Fiddler,Chrome浏览器Network等来获取接口详细信息。根据“非功能性需求”可以确定这些交易需要满足什么样的性能,如每秒TPS 、响应时间、资源使用情况如CPU、内存、网络带宽等。

  2、测试脚本开发

  脚本的正确性是进行有效性能测试的前提。在脚本调试过程中,通常是先设置单用户,然后再设置多用户并发。根据接口文档信息进行脚本开发,首先是创建一个线程组,设置单用户即线程数为1,如图1所示:

1-2.png

图1 创建线程组

  然后添加取样器模拟用户请求,如图2所示:

1-3.png

图2 添加请求

  在性能测试中,为了能够真实模拟用户请求通常需要将请求的报文进行参数化处理。在进行参数化处理时,首先确定哪些参数需要进行做参数化处理,例如图2中的id,starttime和endtime;其次准备数据源,也就是给参数赋值;最后将脚本中的常量用变量代替,如${ID}。经过了上述三个步骤,就完成了一次简单的参数化处理。常用的参数化方式有CSV,函数式,编程式等。笔者以CSV参数为例,如图3所示:

1-4.png

图3 CSV参数化

  笔者将数据源保存在txt文件中,数据之间以‘,’隔开。需要注意的是,在利用CSV配置文件进行参数化处理时,由于数据文件data.txt文件末尾存在空行,导致读取的参数值为EOF。小伙伴不要再踩类似的坑了啊!!!

  最后,添加监听器。常用的监听器有查看结果树、聚合报告和图形结果。其中查看结果树可以查看某一个具体的请求是否成功以及查看错误日志;聚合报告以表格的形式详细列出本轮脚本执行的请求数、响应时间、错误率、吞吐量以及带宽等信息;图形结果以折线图的形式形象地标线了某个时间段系统性能指标的变化趋势。

  3、测试执行

  (1)指定测试策略

  在测试执行之前需要制定测试策略,本次性能测试所采用的策略是采用阶梯负载测试获取测试环境下应用的性能拐点,采用单交易负载测试验证待测交易在并发情况下的性能表现并进行调优,采用单交易疲劳测试验证单交易长时间运行时的性能是否稳定。具体如下:

  阶梯负载测试:每3-5分钟加载若干用户,直至系统资源或性能指标超出预期范围,忽略思考时间,不设置迭代等待时间。

  单交易负载测试:多用户单交易执行15-20分钟,忽略思考时间,不设置迭代等待时间。

  单交易疲劳测试:单交易持续运行8-12小时,且交易量峰值达到该交易的日交易量峰值。

  (2)测试执行

  笔者将测试脚本上传至Xmeter性能测试平台来执行测试。Xmeter支持用户直接上传Jmeter脚本作为测试用例,测试脚本一般以.jmx为后缀名。当一个测试用例需要引入其他外部文件(比如使用CSV Data Set Config时),Xmeter支持用户将.jmx和其他外部文件打包成.zip文件上传。具体的操作过程,读者可以参考Xmeter用户使用指南,详细介绍了Xmeter的操作流程。

  4、监控调试

  在进行系统性能分析时,首先要弄清楚监控的服务器是PCServer还是云上资源。Windows系统有自带的性能监控工具Performance Monitor,在帮助测试人员分析系统瓶颈的时候非常有用。使用Windows性能监视器,可以跟踪应用程序和服务的性能影响,并且可以在超过用户自定义的最佳性能阈值时产生报警或执行操作。笔者在进行本次性能测试实践时,监控的服务器是云上资源,使用了Pod监控工具,即Prometheus + grafana 。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程,非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。Grafana 用于数据展示,如图4所示:
1-5.png

图4 Grafana数据展示

  5、测试报告

  首先从Xmeter中导出性能测试报告,进行系统性能分析并提出解决方案或优化建议,再次对调优后的系统进行性能测试以验证方案的正确性,最后对本次性能测试进行总结,这样就完成了一次简单的性能测试。



作者:文苑   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   什么是monkey测试?  以下是官方说法:  我所认为的monkey测试:指像猴子一样,不知道程序的任何用户交互方面的知识,就对界面进行无目的、乱点乱按的操作;  我想要的monkey测试:不用熟悉业务逻辑,通过界面随机测试,发现浅层的交互问题、前端逻辑问题。  Monkey测试的优点有哪些?  1. 自动化:Monkey 测试是自动化的,无需手动操作,可以节省测试人员的时间和精力。  2. 随机性:Monkey 测试的随机性可以发现一些普通的测试方法可能遗漏的问题。  3. 广泛性:Monkey 测试可以覆盖应用程序的大部分功能,包括一些边缘情况。  4. 压力测试:Monk...
            0 0 609
            分享
          •   互联发展是很快的,每年都会有新语言的诞生。  西瓜我,干测试已经三年了,主要负责web功能测试,java编写接口自动化,APP功能测试,APP 接口自动化(也是用的java),面过得测试也差不多30个,我主要会问技术相关和项目相关的问题来判断面试者以下几个能力:  1.语言沟通能力  2.技术过不过关  3.项目的真实性  所以我先讲面试经过,各位看官可以总结点经验:  一.面试的自我介绍  我有时候忙得来不及看简历,所以我一般会让面试者来个自我介绍,先了解一下是什么样的人,有哪些优势,然后是工作经验。  面试者会出现以下几种现象:  1.吐词不清晰;  2.说话断断续续,如果说话一段一段...
            0 0 1441
            分享
          • 读者提问:开源持续测试平台有推荐的吗 ?阿常回答:有,MeterSphere。官网地址:https://metersphere.io/Github地址:https://github.com/metersphere (开源社区)官方文档:https://metersphere.io/docs/index.html教学视频:https://metersphere.io/video.html阿常碎碎念:MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等,全面兼容 JMeter、Selenium 等主流开源标准,能够有效助力开发和测试...
            0 0 898
            分享
          •   据《华尔街日报》1月7日报道,1月10日,TikTok首席执行官周受资将与欧盟委员会执行副主席、负责竞争事务的维斯塔格(Margrethe Vestager)会面。他还计划与司法专员Didier Reynders、内政专员Ylva Johansson以及负责价值和透明度的副主席Vera Jourova会面。  维斯塔格的一位发言人说,她会面的目的是评估该公司如何准备遵守今年生效的欧盟关于互联网安全和科技公司之间公平竞争的新规定。该发言人称,欧盟委员会也计划与其他科技公司会面。  在被问及即将进行的会面时,欧盟委员会的一位发言人6日表示,欧盟普遍关注TikTok以及其他应用程序的个人数据保护...
            0 0 793
            分享
          • 在测试行业,一个一直被讨论的问题就是:手工测试没有前途,自动化测试会取代手工测试?首先说结论:自动化测试不会取代手工测试,这完全是两个维度的事情。为什么不会呢?我们需要从本源上说起。手工测试没有前途,自动化测试会取代手工测试吗?什么是自动化世界上有很多职业,比如艺术家、维修人员、销售等等,每种职业都需要人来参与,而每种职业也都有部分工作交给机器来做。但无论哪种职业,几乎都是人来主导,然后将越来越多的工作交给机器来做,而机器无法实现的工作,比如创新、情感、思维等,只能由每个具体的人来完成。而这些必须由具体的人来完成的事情,我们称之为“手工”,机器完成的部分,我们称之为“自动化”。因此,手工、自动...
            0 0 742
            分享
      • 51testing软件测试圈微信