目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/
万物皆对象
学过java或python的同学应该都知道这句话吧,没错,在我们设计自动化测试用例的时候也需要这个理念。
编写用例的过程与其他开发人员的编码工作没有什么本质上的区别,也别指望用例脚本可以一次性的编写到位,脚本大多数都是需要一次又一次的优化,起初写的效率低一点也没关系,我们先确保可以跑通,复用性和健壮性可以稍微差点。
但是跑通之后,我们就应该着眼于性能方面,如果用的python,跑几条用例是完全没有问题的,因为python是动态语言,变量指向对象的时候编译器无法做任何预测,另外加上他本身是解释执行,所以是在跑大量测试用例的情况下,一定会出现运行周期时间长与意外报错的情况出现。
此时提高代码的性能就成为了重中之重,算法时间复杂度的优化、内置方法的合理使用、避免全局变量、减少循环等等都可以为我们的代码提供相应的性能提升。
业务强关联
自动化测试用例内的业务关联性会很强。
其实我们从其本质形态来考虑的话也就能探究一二,它需要解决的本来就是一些功能稳定、业务路径明确的正向测试场景,测试用例脚本不可能只操作某个业务界面中的某一个功能,这样就太浪费了。
一般来说测试脚本都需要覆盖某一个正常业务的整条流程,这样我们才可以在其运行的过程中,加入自己所需的各类断言,来验证多条用例中的测试预期结果。
另外由于和黑盒测试用例的本质不同,也就更好的印证了自动化测试用例可以快速进行业务验证与归回、冒烟。
【[Python自动化测试交流壹】:743262921
正向场景
对于自动化测试来说,最恐怖的情形就是将所有的正向、逆向测试场景一股脑的塞进自动化测试框架。
有些人会本能的认为既然是自动化执行,为什么不可以执行逆向测试用例呢?只要设计好合适的参数、编写进测试用例真的就万无一失了吗?
其实逆向测试场景与测试用例被适合放入自动化测试的原因就在于它本身的不确定性,这种不确定性会影响自动化测试的最终运行结果。
做过自动化测试的同学都知道,对于执行自动化测试来说真正可怕的不是逆向测试用例,而是那种不知道什么时候就会报错的测试场景和用例,而这种测试用例的所在场景,绝大多数会出现在逆向测试场景中。
我们要知道自动化测试不是帮测试人员把什么事情都干了。所以针对功能稳定、需求变动不多的正向测试场景,我们可以放心的将自动化测试投入其中,但逆向的测试场景就不建议如此操作了。
一般来说自动化测试主要覆盖产品的主体happy path即可,无需设计过多的逆向场景在其中,影响自动化测试活动的稳定性。
不要忘记了,自动化测试的主要作用还是让我们的测试人员从繁杂重复的测试工作中脱离出来,把精力投入更重要、更复杂的模块和业务测试中去。
多场景构建
这里的多场景构建理念是希望可以充分的利用自动化测试的优势,以更少的运行次数来尽可能的覆盖更多的测试场景。
举个例子,一个自动化测试脚本中存在多条测试用例,那么我们在设计用例的过程中需要充分的利用脚本中的业务界面,来进行多个场景的组合构建。
诸如CRM,我们都会在客户信息界面中验证客户的各类信息、增删改查操作,而这些操作如果可能尽量放在页面的一次性操作中,除非和后面的业务有强关联(后续操作的必要数据),否则基本都是按照这个原则。
这也就是上面说的尽量在一遍中将可以验证的业务场景组合在一起,而非跑多轮同样的业务线却只是验证的测试点不同。
独立测试功能点
这个也很好理解,和黑盒测试用例没有区别,虽然脚本里会设计某个页面当前整体的线性业务操作,但是我们仍旧要确保好每条自动化测试用例中只验证一个功能点,切不可图方便把一条用例中放入多个功能点进行确认。
这时一定有人会问,我多放几个断言不就可以进行多功能确认了吗?
其实这个观点是违背了测试用例设计的初衷的,多个断言自然可以判断多个功能点,但大家试想一下,一条测试用例中有多个验证点是否会让用例本身的步骤变多,且无法拆解,这个和写黑盒测试用例不一样的地方就在于你的代码是无法独立拆解出来的。
那么接下来的问题就是同样是测试用例,是一堆组合后的测试用例复用度高?还是独立测试功能点的用例复用度高?
大家都不用细想,答案就已经很明显了。就好比是乐高积木,如果需要你设计一座城堡,是一整块不规则形状的大积木好还是一小块一小块规整的小积木好?
在日常工作中,我们的自动化测试也不是只要设计相关的功能测试点即可的,这里还包括了相关的一些测试数据操作。那么测试数据的前后置操作也就理所当然的变成了设计测试用例中必须的步骤之一了。
一般来说我们会把需要生成的测试数据提前的放入某个独立的测试用例内进行预先创建,这个称为前置操作,其实也就是我们所说的前提条件。
而同样的,我们在执行完某些操作或业务流之后,也可以将这些测试数据进行回收、删除,这被称为后置操作。这样我们就可以时刻保证我们的测试环境可以重复的进行同样的测试用例而不会担心环境或数据等因素发生改变。
市场主流配套自动化测试框架
接口自动化测试:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试:Python+appium+POM+pytest+allure+Jenkins;
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有拥有不断前行的勇气,才能实现自己的梦想。每一步脚印都是迈向成功的必经之路。坚持不懈、努力奋斗,终将收获美好的人生。相信自己,你一定能成为最好的自己!
只有拥有不懈的努力和坚定的信念,才能获得自己想要的一切。无论你现在身处何种困境中,只要不放弃奋斗,勇往直前,最终必将收获成功与幸福。
世界上没有捷径可走,只有不断努力奋斗才能获得成功。坚持梦想,持之以恒;勇敢面对挑战,超越自我。每一步的努力都将成就未来的辉煌,加油!