- Python实现Web UI自动化测试实战:Selenium 3/4+unittest/Pytest+GitLab+Jenkins
- Storm 李鲲程 边宇明
- 1571字
- 2021-08-17 17:24:13
前言
为什么要写这本书
在开始本书内容之前,先简单介绍一下软件项目模式,如瀑布模式、敏捷开发、DevOps(过程、方法与系统的统称)等,然后通过分析模式的演变引出对测试的思考,这样有利于读者学习测试的相关知识。我深信:好的开始是成功的前提。
简单来说,瀑布模式将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护6个基本步骤,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。敏捷开发的出现缩小了需求和开发之间的“隔阂”,有效地缩减了产品开发的周期,并提高了产品开发的效率。敏捷开发的特点是高度迭代、有周期性,并且能够及时、持续地响应客户的频繁反馈。敏捷开发测试与普通测试的区别如下。
●项目开发与测试并行,项目完成整体时间较快(在Scrum模式下,建议每个Sprint周期为2~4周)。
●模块提交较快,测试时较有压迫感。
●工作任务划分清晰,工作效率较高。
●项目规划要合理,不然测试时会出现复测的现象,导致工作量加大。
●发现问题需及时解决,因为项目中的人员都比较忙,问题很容易被遗忘。
●耗时且较难解决,又对项目影响不大的问题一般会遗留到下个阶段。
●发现漏洞(bug)能够很快解决,对相关模块的测试影响比较小。
●版本更换比较快,且版本会影响测试速度。
●与开发人员沟通较频繁。
●要注意版本的更新情况。
●测试人员几乎要参与整个项目组的所有会议。
再来看看DevOps。敏捷开发的流行在某种程度上“放任”了缺陷的存在,这直接影响了线上系统的稳定性。当一方(产品人员、研发人员)想快速发版、完成工作量(开发、上线的功能对应技术人员的工作量),而另一方(运维人员)要保障线上系统的高可用性(系统无故障运行时间是运维人员绩效的重要衡量指标)时,必然要减少不必要的发版,技术人员与运维人员之间的“隔阂”由此产生。于是一种强调技术人员和运维人员之间的沟通合作,通过自动化流程使得软件构建、测试、发布更加快捷、频繁和可靠的概念逐步开始流行。以下是DevOps对测试人员提出的新要求。
●“测试左移”的概念更加明确,即更加强调测试人员应该在需求阶段进入项目。
●出现“测试右移”的概念,即测试人员需要对生产环境进行必要的监控,实时获取相应的数据反馈。
●开发人员和运维人员中间“夹着”测试人员,且要求开发人员和运维人员拥有较高的效率,因此测试人员必须要有能力应对频繁的版本发布。
总之,敏捷开发和DevOps的迅速发展,对测试人员提出了更高的要求,例如快速回归测试、快速版本验证,这些都是手动测试无能为力的情况。于是“穷则思变”,测试前辈们开始逐步将“自动化测试”和“精准测试”等新技术应用于项目中。应用最多的是接口自动化测试、UI自动化测试,但由于部分研发团队不会输出项目接口文档,因此UI自动化测试变成测试部门快速响应的“利器”。本书将带领大家从零开始,借助开源测试工具Selenium,封装一个Web UI自动化测试框架。本书会为读者提供一些自动化测试框架开发的思路,各位在此基础上可以开发自己的自动化测试框架,从而提升测试效率,适应新时代的发展。
阅读本书的建议
为了保证前后内容的逻辑性,本书会在前面的章节中讲解一些看似不相关的知识点,但这些知识点都会用在后续内容的讲解上,所以读者尽量不要跳读书中的章节。另外,即便是非常简单的例子,也建议读者亲自练习,因为“看懂”和“会写”真的是两回事。最后,只有将学习到的知识应用到实际操作中,才能证明其存在的价值,所以读者要注重实践。
本书配套文件
本书提供了书中提到的所有源码文件和学习资料,有需要的读者可以加入本书QQ交流群:460430320。读者可以在群中交流学习心得,笔者也会不定期在线答疑。
致谢
感谢人民邮电出版社,感谢编辑张天怡及其他工作人员,第二次合作,很愉快。感谢领导穆总的大力支持。感谢家人分担了家庭中几乎所有的琐碎事务,让我有更多的时间编写书稿。最后,感谢自己。
Storm(杜子龙)
2021年6月