自动化测试一(了解自动化测试)
一、为什么要做自动化测试
在这个互联网发达的社会,各大网络平台迭代的都非常的平凡,为了让自己的产品更加的凸显出来,使自己的产品更加优秀。平凡的迭代是必不可少的。
如此平凡的迭代,难道就不会出现线上事故吗?为什么能够做到线上环境极低的事故率甚至0事故?难道测试人员的执行case能力如此之强,还是说测试人力非常充足?
其实自动化测试在平凡的迭代中就起到的非常重要的作用,因为他可以在最短的时间内去执行所有的case,并且反馈出存在问题的case,随时可以执行,一次执行可以覆盖所有的范围,这样既可以提高测试的效率,还可以节省测试资源。
系统的稳定性也是需要自动化测试的支持
比如银行的取款机系统,他需要24小时不停的运转,稍有差错,后果不堪设想。那么类似这样的场景总不能让测试人员每天24小时不停的去测试吧,自动化测试就可以这样,持续测试。
可以验证执行周期内哪些场景发生了错误,这就是自动化测试的优点
二、自动化测试类型
1、接口自动化测试
简单的来说就是编写好测试代码,验证开发接口的每一个场景返回的参数是否正确。
接口自动化的优点:<1>从底层发现错误,可以大大降低后期发现错误的成本。<2>接口不会平凡的发生变动,维护成本低,效果好,执行时间窗口短。<3>减少测试资源成本
接口自动化的缺点:好的自动化测试对于框架要求非常高,代码能力非常强。不容易做到非常好
目前大多数公司所做的自动化测试都是接口自动化测试,基本上都是对所有的接口进行尽可能的自动化case覆盖,从而确保每个接口都能被自动化工具验证出他的准确性
2、UI自动化测试
简单说就是对展示的页面进行自动化测试。用于测试前端页面元素的。
UI自动化测试的优点:<1>降低业务测试人员的测试成本,程序代替人工 (想不到他的优点)
UI自动化测试的缺点:<1>UI不像接口,接口是几百年改动一次,UI界面的每个迭代都可能被修改元素,修改了可能你都不知道,当你运行程序的时候才发现,维护成本超级超级超级的高。<2>UI自动化运行时间窗口长,依赖于浏览器,当然现在有无界面化的方式,但是依然很慢,稍微大一点的项目,case达到5000-10000,可能要跑2-3个小时,开了并发往往也改变不了他慢的问题。<3>UI自动化非常的不稳定,需要很好的考虑到多种场景,保证程序应对好异常情况后能够正常执行case。
虽然缺点多,但是很多电商公司依然在做,不过掘到多数的项目不会做UI自动化测试
三、自动化测试框架
1、python
<1>UnitTest+HtmlTestRunner,比较容易上手,很容易学习,目前做接口自动化测试很方便的架子
<2>pyTest,对比第一个自动化测试框架,pyTest更加的简洁,实用性更佳(个人感觉)
2、Java
<1>Java+Maven+testNg,类似于python的pyTest,需要一定的学习成本,学习一下testNg的实现原理,相对于python的框架,testNg非常成熟,实用性更高,并且Java本身运行的速度也会比python快
四、什么样的项目适合做自动化
1、大项目,长期迭代的项目
2、对于页面元素长期不动的项目适合UI自动化
五、自动化测试工具
1、web端
接口自动化一般不需要什么工具进行支持,顶多就是一些生成测试报告的工具
UI自动化Selenium工具进行元素定位即可,同样常用的测试 报告工具即可
2、移动端
appium、airtest两个工具够用了,大项目app项目基本上都会需要做自动化测试的,工具不是主要的,最主要的如何使用代码定位元素,已经对于UI自动化测试的不稳定性,如何让代码运行的更佳健壮,主要还是在于代码能力了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南