怎么学自动化测试
首先,要有心理准备,不是说会自动化,就不用干手工测试了。 自动化测试没有办法完全取代手工测试,有些测试场景,自动化的成本要明显高于手工。
其次,咱们把平时的测试工作简单分一下类,手工测试最常见的就是基于界面的测试,通常可以串起来整套流程。 但是对于分层测试来说,接口测试是一种回报率更高的方式,自动化测试在接口测试的应用是最普遍的。 当然,还有性能,安全,这些一般都是自动化来实现。
然后,再来说一下技能。技能一般分为工具和代码两种,他们都可以达到自动化测试的效果。 如果代码能力较差,一般会先会一些工具过渡,然后再把编程能力提上来。 而且一定需要注意的是,业务测试的能力是绝对不能丢的。
工具常用的有 jmeter, postman 这样的工具,现在国内也出现了像 metersphere, apifox 等等自动化工具,都可以了解一下,其中,我个人觉得 jmeter 是要重点掌握的,它的能力足够强,既可以做全流程的接口测试,也可以做性能测试。
然后是界面端的工具,一般就是集成录制和回放功能,然后生成代码片段,以及一些遍历工具。 像 selenium ide, cypress, katalon studio 等等。 cypress 会比较流行一点,但是需要会一点 javascript 基础。 这一类工具的实用性不是很强,要么就是迁移性较差,要么就是应用不广泛,还有的是学习成本高。
接下来,说一下编程。当会一些工具之后,一般都会掌握一两门编程语言。一方面,会编程职业前景会好一点,另一方面,很多工具都会支持通过编程来自定义脚本。
编程语言的选择,测试领域一般是 python 和 java,如果没有接触过,两个选一个就行了。 如果前端测得多,要求高,最好学一下 javascript。 对于测试来说,刚开始上手的时候,我觉得没有必要太精通,花过多心思在各种编程语言的进阶用法上,能写出测试用例就差不多了,在工作中再去提升。
掌握好编程语言后,会接触各种各样的框架和库,他们就是去干具体的测试工作的。以 Python 为例,做用例编写,用例收集,用例运行,测试报告生成会用到单元测试框架,比如 unittest 和 pytest。
接口自动化一般会用到 requests / aiohttp / httpx 这样的库, 界面端会用到像 selenium / playwright / appium /airtest 这样的框架, 性能会用到 jmeter/ locust 这样的东西。
以他们为核心,要实现的大多数测试场景和技术,都很少从零开始写,会用到具体的库,比如怎么操作 csv 文件,怎么操作 yaml, 怎么实现参数化,怎么控制数据库,怎么处理数据依赖,怎么做数据生成,怎么清理垃圾数据, 怎么实现并发,怎么做分布式处理,怎么做集成,怎么部署自动化执行环境,就不一一展开说了。
有缘再聊吧。
我是九柄,公众号【 九柄 】,分享软件测试文章、面试、教程资料,欢迎来看看。
评论