如何实施自动化测试?
虽然业界比较注重自动化测试,不过永远要记住下面一句话:“不要为了自动化测试而做自动化测试!”不管你在测试工作如会采取什么测试方案,测试手段,这一切都是为了业务服务的,脱离了具体的业务,你的辅助手段再厉害也是无用的。
在实施你的自动化测试工作之前,你必须对要测试的业务非常熟悉,核心业务流程,具体的功能模块的实现,前后端如何交互,以及业务未来的发展与迭代频率等等。
实施自动化测试
1、根据业务特点,选择自动化测试方案。
你的业务是前后端分离的吗?
业务比较注重用户交互还是数据完整性?
用户量有多大,有没有需要承担的压力等等,通过考虑业务的特点,才能选择比较合适的方案。
2、根据业务侧重点,确认自动化覆盖范围和粒度。
通过业务特点选择了自动化测试方案,然后就需要根据业务侧重点来确认范围和粒度了。
比如说,你确定要进行Web UI自动化测试,肯定不能看着页面就去写自动化测试用例嘛,要根据业务重点来确认。哪些业务流程是核心,必须覆盖?
哪些功能暂时有技术难点,或是变化比较快,可以放为二期来实现。通过对手工用例的评审,来准确确定自动化测试的范围,实现用例的粒度。
3、根据自动化测试用例范围,选择实现框架和语言。
目前业务自动化测试工具,开源框架可谓多如牛毛,让人有点儿无从选择,但是它们还是各用侧重点的。我们需要根据测试用例的范围和特点,参与人员的水平,用例的使用场景和未来的计划来选择合适的框架。
比如说,我们要做接口自动化测试,而参与人员大部分不会代码 ,那选择Python+requests+pytest+yaml+alluer+Jenkins就比选择Java+Httpclient+TestNG+Jenkins实现起来成本更低。
4、根据用例用途,选择执行策略。
根据我们自动化测试的用途,是做上线前回归,还是触发式回归?
需不需要做监控?执行环境是什么?
来去确认是否做持续化集成,是否发执行结果与错误预警,用例或是用例集管理方案,指定维护人员等等工作!
如何学习自动化测试?
既然自动化测试是手工测试提升的一个必经之路,虽然自动化测试没有那么高大上,但也是必不可少的。
那作为一个有理想的测试人员,应该如何去学习自动化测试呢?
1、准确定位自己,明确目标
有不少同学意识到了自动化测试的重要性,就去网上查询资料啊,或是报培训班学习啊,可是到最后越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么原因呢?
这是因为你在学习自动化测试之前没有想明白几个问题:
我的真实水平如何?
如果学习一项新的技术或是语言,我愿意投入的精力是多少?
从现在开始学习,三个月或是半年后应该达到什么目标?
我了解现在业界的自动化测试类型或是体系吗?
想好这些问题再去入手学习,必定事半功倍。
2、全面了解,选好切入点
目前自动化测试方向大概有以下几个:
辅助测试脚本方向,以Shell,Python为主来简化重复的工作,过滤日志等;
接口自动化测试方向,Python+requests+pytest+yaml+alluer+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;
页面自动化方向,主要有Python+selenium4+pytest+POM+allure+Jenkins,Java+Webdriver+TestNG+Jenkins,以及其他的框架和工具;
App自动化测试方向,以Python+appium+POM+pytest+allure+Jenkins,Robotium+Java+TestNG+Jenkins,Appium+Java+TestNG+Jenkins为主。
当然这里介绍的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。
3、步步为营,不要贪多
我们在提升自己的时候,发现有好多东西需要学习,于是就很着急,想同时学习很多东西,其实这并不好。
学的太多容易产生混淆,而且不容易消化,你仔细调研一下就会发现,很多东西都是通着呢。
代码架构,用例管理,执行策略,持续化集成思想都可以举一反三,关键是自己要动手真正实施起来,在公司现在的框架上写用例,不管你写多少,不了解整体结构都是没有用的。
4、抛弃工具,多用开源
业界好像从来不缺少自动化测试工具,QTP,Realobot Framework,LoadRunner等等,知名不知名的数不胜数。
先不说这些工具效果如何,目前大公司是从来不用这些工具的,大家都使用开源的框架,工具进行定制化自己的测试方案。
所以刚刚学习自动化测试的时候,也不要依赖工具,使用开源的Webdriver,,Appium,Robotium等搭建自己的自动化测试工程。掌握一个整体的自动化工程工作原理,为以后搭建自己的自动化工程,工具,平台做准备。
要知道,它只是一个工具,一种测试方案,最终的效果还是由实施的人来决定的。早些的时候,用Jenkins做持续化集成比较热门,近两年docker技术的出现,又使CI,CD变得火热起来。我们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准方法,不断提升自己呢?
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
勇往直前,披荆斩棘,奋斗的足迹铺就辉煌的道路。不畏困难,不惧挑战,信念与勇气将引领我们超越极限。每一次努力都是蜕变的起点,只要坚持追求,我们必定绽放属于自己的辉煌光芒。
扬起理想之帆,在拼搏中砥砺前行;点燃激情之火,在奋斗中谱写辉煌。披荆斩棘,攀登高峰,只有用汗水浇灌,方能开启通往成功的大门。
不论风雨多么凛冽,心中的激情永不熄灭;不论道路多么艰辛,信念的火焰始终燃烧。勇往直前,超越自我,别让失败阻挡你的脚步。