作为一名软件测试工程师,你居然不知道如何“偷懒”?

在这里插入图片描述
作为一名软件测试工程师,在你测试app的时候,是不是只会到处点点点?

在你测试接口时,是不是依旧只是用个postman创建请求逐个调用?

开发提测之前,你有没有提供一些用例来个冒烟测试,快速验证下提测质量是不是OK?

发布上线之前过全版本checklist,我想看下其他功能是不是会受到影响,以前的用例全部手动过一遍?

线上服务天天跑,怎么监控是不是有哪个接口不小心挂了呢?我总不能每天吃饱了没事干把所有接口时不时用postman调一下吧。

问题是不是很多啊,是不是有时候明明知道有这些问题,却又力不从心,不知道该如何下手去解决?

那是你不知道偷懒,不知道其实上面这些问题可以快速解决。

可别以为偷懒是个彻彻底底的贬义词,作为一个合格的测试工程师,我们可得学会偷懒,把很多重复性的工作内容自己跑起来。

不然每天只知道对着需求点点点,自己能力半点提升没有不说,工作效率也没啥提升,对自己对公司来说都不是一个好事。

再比如哪天你要换工作,面试一问,除了对业务的了解以及一些基础的测试工作之外,啥都不会,别人为什么要你呢。

我们知道,测试分很多类型,但是对于大多数人而言,无非是app测试、服务端测试(主要指接口测试)、性能测试。

对于app测试,在一次次版本迭代中,有挺多内容是不会出现大改动的,比如各个界面以及它们之间的交互逻辑。偏偏有些业务场景又是非常重要的,在我们在每次测试的时候,必须要针对这些不经常变化的逻辑去校验。

比如充值功能,充值页面基本不会有什么改动,但是充值功能也是每次都必须测试的内容。毕竟这个可是直接关系到公司营收,可谓是各个功能里面的重中之重。

如果我们每次都是需要手动去测试这些不经常改动的内容,一方面,测试时间不能缩减,测试效率始终未提升,另外一方面,对于测试人员而言,也会觉得这个测试很简单,没有什么技术含量,而且有个隐患的地方,长时间这样下去,测试有时候会忽视掉这块内容,觉得不会出问题,这就是所谓的时间久了已经麻痹大意了。不出问题还好,一旦出问题,可是分分钟出大问题啊。

那么怎么解决这个问题呢,UI自动化呗,让代码来帮我们自动去跑这些场景。代码是我们最忠实的朋友,一条命令行,它就乖乖地把所有预制场景给你跑一遍,不带一点折扣地执行。

有了UI自动化,有多方面的好处。

第一,开发提测的时候(甚至包括开发阶段的代码提交),触发ci构建执行ui自动化用例,可以提前确定影响范围,把该解决的bug先给处理了,这样也就提高了提测质量。

第二,进入测试阶段,测试人员也可以先执行一遍用例,快速识别一些明显的bug。

第三,在需求测试完之后,经常需要回归整个app的功能,自动执行一下全版本的用例,便可以识别此次改动是否影响到其他功能。

第四,日常巡检app线上功能是否稳定,比如每日构建一次,看是否有不稳定的功能性问题。

不过UI自动化有个非常明显的缺陷,就是不稳定。这个不稳定来自两个方面,一个是如果产品UI改动较为频繁,那么UI自动化其实是不合适的,代码维护成本太高。另外一方面,UI自动化固有的一些缺陷,比如受到网络因素的影响,页面加载不出来,导致有的用例概率性执行失败。

在这里插入图片描述

总结就是:UI自动化投入成本大,成效没有想象中的好。

对于接口测试,先直接说优点吧:投入成本低,收益大。

我们最常见的接口协议是http或https。这个市面上有很多框架做这个接口自动化,比如Robot Framework、Python + Request、HttpRunner、Postman + Newman、Jemter + Ant、Java + rest-assured、Vue + Flask/Django。。。

真是太多了,不同框架有不同的学习成本、对语言的要求,简单的有python、较高的有java或者JavaScript,扩展程度、用例管理也不一样,有的支持性能测试,有的不支持,有的框架支持录制,有的不支持,这个看大家的选择了。

有个问题不知道你们遇到没,微服务接口(未封装成http格式的)你们是否有什么框架自动化呢?这个说实话,好像还真不怎么好找。目前就我所知,也只知道一个ginkgo框架,这个对于gRPC协议的接口真的很有效。

目前很多公司都在弄什么微服务,上k8s集群,服务容器化,接口使用gRPC协议调用。这个时候对于我们测试来说,ginkgo框架的出现,真是解决了我们的一大痛点。当然了,这个框架本身也是支持http协议的,甚至比一般的框架还好用。这个框架使用go语言,上手难度一般,可以自定义性能测试场景,真的非常推荐。

为什么说接口自动化测试投入成本低,收益大呢,这个主要是由接口执行效率决定的。执行一百个用例,可能也就二三十秒钟,不像UI自动化,一百个用例,两台手机估计得执行几个小时(想想就恐怖)需要的投入,也无非花上一段时间熟悉下框架,熟悉之后调通一个用例,后面的用例就跟雪花一样哗哗哗地下,很快就写好了。

至于说为什么收益大,可以参考上面说的UI自动化,可以快速执行所有用例验证整个服务是否ok。

性能测试,也可以分为app性能测试,服务端性能测试。

app性能测试的话,只需要知道app关注哪些性能指标,一般都可以通过执行命令行方式获得指标数据。我们在设计一个app性能测试框架的时候,可以把一个个性能指标收据收集封装成函数,再跑几个小时monkey测试,在monkey测试过程调用各个封装好的函数,就把所有性能数据收集下来了,再处理成html格式的报告即可,处理起来简单实用。

服务端的话,要是追求简单,那就一个个接口调用一些开源的性能测试方法,反复执行获取平均值。但要是有追求一点的话,那必须是考虑实际场景(接口测试,不仅仅是确认独立的一个个接口是没问题的,还应该关注多个接口结合实际的业务流程来考虑,即场景化的接口调用链测试)那这种性能测试,就得跟接口自动化一样了,把接口场景化,然后在执行开始、结束的时候分别加上时间戳,两者之差即为场景的时长,我们需要关注场景化的性能,这个也是比较困难的,最主要的难点,在于不好定义这个标准。

好了,说了这么多,其实归纳起来很简单。就是要学会自动化来执行我们测试重复性的工作内容,这就是“偷懒”的技巧,你学废了嘛。

最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

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

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

测试岗反复跳槽,跳着跳着就跳没了…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值