• 0
  • 0
分享

源自于一本讲性能测试书的思考?

书中内容:

性能测试是一门富有挑战的、有深度的、综合性的学科。

那我想怎能只局限于说性能测试,我倒认为所有的测试类型都是一门富有挑战、有深度的、综合性的学科,只要你想做到顶尖都没有那么容易,而我们正在做的的UI自动化测试也是如此。

很多性能测试初学者总觉得性能测试就是写个脚本,弄几台机器测一测,出个报告就行了。通常关注"并发多少""响应时间多少""能跑通吗"这些问题。认为并发越大,响应时间越快,那性能一定就越好。

性能测试不仅仅是录制脚本或编写程序,基本的性能理论、性能执行的原则还是要了解的。同样的脚本,不同的人员执行,不同的针对点,测试结果会大相径庭。

看到作者的这句话,我能体会到作者心中的某种愤愤不平,想极力向广大肤浅的读者证明性能测试的高深。

我虽从未接触过性能测试,但从不认为性能测试是轻而易举就做成的,当然知道其有方方面面的知识需要学习才可略晓性能测试。基于我所做UI自动化测试的经验来说,开发个脚本、用下工具、就算你懂得开发语言 那也仍有很多不易之处啊,岂能是简简单单。

关于作者说"性能测试不仅仅是录制脚本或编写程序,基本的性能理论、性能执行的原则还是要了解的",让我觉得UI自动化测试同样,不仅仅要会写脚本编写程序,其实现和执行的原则原理也算是有必要了解清清楚楚,这样方能更好的使用自动化,不了解原理原则的与深刻理解自动化原则原理的人在使用自动化进行测试时会有着质的差别,不管执行的速度、测试的方案、查到的问题那都是完全不同的。

实际上我们需要对系统进行一系列复杂的需求分析,以及一系列性能测试计划和设计的工作才能开始性能测试执行。经过N此回归,找到瓶颈的具体原因,并优化。掌握性能理论基础才能驾驭那些性能测试工具等,没有掌握性能理论基础直接操作好比开车找不到目标,盲目原地打转或离目标越来越远。

读到这让我产生了一定的共鸣,这些年我们所做的UI自动化测试就是那辆没有目标的车,离目标总是忽近忽远、更远。我非常同意作者所说掌握一套工具的理论基础才可轻松驾驭对应的工具,因为无论工具或开发语言再厉害,它终究是服务于公司业务,服务于人的,我们必须以业务以人为纲要,而不可一味以实现技术的高超去做自动化。同样的,我们在做UI自动化测试之前也是需要对被测系统进行一系列复杂的需求分析,以及一系列UI自动化测试计划和设计的工作的工作后才能真正才是UI自动化测试,即 这其中的调研、准备工作其实是占据了整个UI自动化测试实施的大部分时间,因为你想让UI自动化能切实发挥作用,就必须从长计议,否则就不要开始。

性能测试流程图

性能测试流程图.jpg

流程节点介绍:

1)业务学习:用过查看文档,手工操作系统来了解系统功能。

2)需求分析:分析系统非功能需求,圈定性能测试的范围,了解系统性能指标。

3)工作评估:工作量分解,评估工作量,计划资源投入(即需要多少人力,多少工作日来完成性能测试工作)。

4)设计模型:圈定性能测试范围后,把业务模型映射成测试模型。

什么是测试模型呢?比如一个支付系统需要与银行的系统要进行交互(充值或转出),由于银行不能够提供支持,我们会开发程序去替代银行系统功能(这就是挡板程序,Mock程序),保证此功能的性能测试能够开展,这个过程就是设计测试模型。

再比如,后面要对Jforum论坛进行性能测试,根据需求我们了解到一般大家发帖或回帖前都会先登录,那么我们在开发脚本时就要把登录与发帖或回帖场景绑定在一起进行测试,这就是测试模型。通俗点说就是,性能测试用例设计+性能测试实现方案,用例只关注业务,模型还需关注如何实现,是否具有可操作性、可验证性等问题,最后我们还得根据不同的测试目的组合成不同的测试场景。

5)计划编写:计划测试工作,在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等。

通过上述流程图让我领悟到,做性能测试人员方需学习业务知识,分析需求,做UI自动化测试的又怎能与业务、需求分隔,UI自动化测试当与业务、需求关联更加紧密才是啊。长期以来我们的UI自动化用例设计总是想着由功能测试人员来提供给自动化开发人员,实则非明智之举,当然我想这也并非在所有公司都不适合,因为每个公司人员不同,要求不同,工作模式不同,所以,我的看法也不能以偏概全。我仅认为,自动化测试若想把自动化测试做好,必须要了解业务,在了解业务的基础上设计自动化测试框架,开发自动化脚本,万不可急于求成,以眼前利益为。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   ChatGPT已经越来越火爆,国内百度、阿里等互联网大厂也纷纷投入大模型研究,OpenAI官网中提供了许多ChatGPT应用场景,例如SQL翻译、语言翻译、代码解释等  作为一名QA,我更关注ChatGPT生成的自动化测试脚本质量如何,借助ChatGPT能否提升自动化测试编写效率。  当提到自动化测试时,我们通常将其分为单元测试、接口测试和UI测试,接下来,我们先看看ChatGPT生成的单元测试代码的质量如何。  ChatGPT辅助后补单元测试  首先,使用Spring框架编写一个简单的后端服务,服务包括两个接口:一个createUser接口和一个getUsers接口,使用“spring-...
            0 0 690
            分享
          •   1 背景  分布式批量系统指的是采用分布式数据库架构,主体功能由批量程序实现的系统。分布式系统批量程序的性能测试,除了和联机交易性能测试一样关注服务器资源使用率是否合理、是否存在性能异常外,在测试执行阶段需要关注是否因数据分布不均衡导致部分并发子程序执行时间过长,成为整体批量程序的“短板”,从而影响批量程序的整体时间。  下面我主要介绍一种分布式系统批量程序性能优化的思路,并结合实际测试效果说明。  2 分布式系统分片和批量并发规则  被测系统数据库为分布式数据库,存储并处理某公司各个机构的业务数据,包括若干个数据库分片、500多个分片键(分布式表的一个主键字段,用来区分数据存放的分片),...
            0 0 885
            分享
          •   一.背景介绍  继自动提交bug到jira文章之后,这时候就会有人有疑问了,我每天都在跑自动化测试(美其名曰每日构建),也每天都在自动提交bug,可能昨天提交的bug尚未解决,今天又重新提了一遍,一周下来累计的bug好几千了,怎么办?一个个去手动过滤,有木有感觉直接崩溃了?那么为了解决这个问题,今天我们就来介绍一个自动化过滤的方案及其实践。  二.测试需求分析  此方案也主要使用python/pytest实现,主要针对于jira上bug的处理,当然也可以使用过滤重复需求,重复任务等等均可以。  准备工作:  1.在处理之前,你首先需要了解部门的jira流转图(不同公司或部门都可能不一样),...
            0 0 847
            分享
          •        行为驱动开发英文名为Behave Driven Development,简称BDD,是一种敏捷开发方法,主要是从用户的需求出发强调系统行为。将此模型借鉴到自动化测试中称其为行为驱动测试模型,它是一种通过使用自然描述语言确定自动化测试脚本的模型。也就是说,用例的写法基本和功能测试用例的写法类似,具有良好协作的益处。这种测试模型使每个人都可以参与到行为开发中,而不仅仅是程序员。每个测试场景都是一个独立的行为,以避免重复,并且已有的行为可以重复使用。       目前在Python中最流行的 BDD 框架是...
            10 10 3015
            分享
          •   中国电动汽车巨头比亚迪正准备进军加拿大市场。据 Automotive News 报道,比亚迪近期聘请了游说人士,为其进入加拿大市场销售乘用电动汽车、建立新业务以及应对可能征收的电动汽车关税提供咨询。此外,比亚迪已开始与加拿大汽车经销商接洽,为建立销售渠道做准备。  为了应对中国电动汽车行业的快速崛起,美国政府近期采取了对中国进口电动汽车征收了 100% 关税的举措,并采取其他措施鼓励电动汽车相关制造业的本土化和友岸外包。加拿大也在考虑效仿美国和欧盟,对中国电动汽车征收类似的关税。  由于无法直接进入美国市场,中国电动汽车企业可能会寻求绕道进入全球最大的汽车市场之一。有汽车行业分析师表示,这...
            0 0 448
            分享
      • 51testing软件测试圈微信