目录:导读
前言
1、什么项目适合做自动化测试?
1)需求稳定,不会频繁变更
2)研发和维护周期长,需要频繁执行回归测试
3)需要在多种平台上重复运行相同测试的场景
4)某些测试项目通过手工测试无法实现,或者手工成本太高
5)被测软件的开发较为规范,能够保证系统的可测试性
6)测试人员已经具备一定的编程能力
所以,要综合实际情况来看待“自动化测试”。
它的确可以从一定程度上解放测试人员的劳动力,完成一些人工无法实现的测试,但并不适用于所有的测试场景。
如果,维护自动化测试的代价高过了节省的测试成本,往往会得不偿失。
2、一次性的测试数据如何处理?
准备不可重复使用的测试数据,其实是一件比较让人头疼的一件事。
因为只能使用一次,每次运行之前都要准备新的数据,工作量不可谓不大。而且如果数据本身比较复杂或者稀少,这个数据准备工作就更让人怀疑这些功能用自动化的方式来测试是否有价值。
那么对于这种一次性的测试数据,我们用什么方法去处理比较好呢?
①.如果数据存量较多,则考虑直接连接数据库,去数据库查询满足测试需求的数据。
注意,满足测试需求或许不是简单的一两个SQL语句能决定的,需要仔细了解系统业务、设计逻辑,争取让测试数据是绝对可用的。
②如果数据较少,运行存在数据不足使用的潜在隐患的话,可以考虑该业务功能的互逆操作,从系统中寻找现成的具有数据对称性的功能,如果有这种功能的存在,那么两个功能串联在一起测试运行,能够起到操作回退的作用。
比如,份额质押and份额解押,A份额过户给B,B再份额过户给A等类似的业务场景
③如果业务系统中不存在互逆的功能,考虑后台数据的回归和删除,例如保单状态修改,系统中不支持保全回退。
考虑在测试数据库中建立一个JOB,对操作进行回滚,修改和删除所有影响到该笔数据下次继续运行的数据库记录,根据测试执行的频率决定JOB对应的运行频率,保证每次测试运行之前运行一次Rollback测试数据的JOB。
④不断生成新的可用的测试数据,增加可用数据量。寻找数据最初的来源,例如我们说的这两个操作所需要的数据,他们都可以由新契约承保生成测试数据。
如果契约承保系统功能正常、自动化能够正常运行,那么我们将会不断得到新的数据,从而避免数据量过少又不可复用的尴尬。只不过这种方式对关联系统功能和自动化测试程序运行的稳定性依赖性较高,很难保证。
比如手机号码、身份证号码,统一社会信用代码,这些在当前项目当中需保证唯一性,所以可以借助Faker这个Python第三方库,每次生成新的数据。
个人认为:无论是什么类型的数据,使用什么样的方法,只要相同的数据能够长时间反复使用,那么就可以把写数据、使用数据文件存储,映射到测试程序上去。
存储数据的载体文件如EXCEL,统一保存在测试框架下指定的目录中,降低测试运行对人工测试数据准备的要求,最好能保证在首次运行成功之后还能够运行30次以上。
对于不可复用的数据或者实时性要求很高的数据,则从被测系统数据库从获取。
而对于完全不可复用且回退比较麻烦的测试场景,并且生成新的可用的测试数据如果也无法避免出现重复数据的情况,那么是否要进行自动化测试是值得商榷的。
3、自动化测试总结
自动化测试,可以做高并发的场景测试,也可以做稳定功能的回归测试(总之,自动化测试,是对纯手工测试的一种补充测试,是一种辅助测试的手段)
接口自动化测试的框架,可以是通用的,但是不同的项目,要私人化定制,具体要结合项目的实际情况,对一些通用的流程or必要的字段构造,比如手机号码的生成、身份证号码的生成、统一社会信用代码的生成,做一下公共方法的封装。
自动化测试,如何做,做哪些场景,不是拿来一套现成的框架,随便改一改就适用的,需要看当前项目的具体情况以及项目所处的阶段,还要看领导想要那种效果,因地制宜,因项目而异的–不同的情况,自动化要改造的地方也不太一样 – 所以要有一定的前瞻性,统观大局考虑。
自动化,是一种辅助的手段,不能单方面简单地准确自动化覆盖率,要结合项目目前所处的周期以及当前项目的特点。
最新最全花1W买的Python+Selenium全栈Web自动化测试
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最动人的风景,往往藏在最险峻的山巅。当你觉得力竭时,请记住:每一次坚持都在重塑更强大的自己。别问路有多远,只管迈步向前;别怕山有多高,向上攀登就是答案!
你体内沉睡着改变世界的力量!每个清晨都是改写命运的新机会,每次挫折都是精心包装的礼物。当全世界都在说"不可能"时,正是你证明"可能"的最好时机!