自动化测试框架 | selenium+Python,怎样从0开始搭建一个属于自己项目的自动化测试框架

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mcfnhm/article/details/79640939

这篇博文下面的文章是链接到我知乎专栏的,现启用新知乎账号马蚁蛋」,对应的专栏「软件测试精选,所有文章全部迁移至此账号了,需要的请关注。

此篇文章是,如何从零搭建一个属于自己项目的自动化测试框架(第一篇到第十一篇)文章的总录。

思考:我们需要一个什么样的框架
既然要搭一个框架,我们首先得弄明白我们需要一个什么样的框架,这个框架要支持什么功能?
框架主要的作用就是帮助我们编写更加简单而且好维护的用例,让我们把主要精力放在测试用例的设计上,那么我们就需要把所有额外的东西抽象出来作为框架的部分。

了解了这些,很容易就有了自己的测试框架思路设计,或者说有了测试框架的目录结构。比如,日志以及报告、日志级别、URL、浏览器类型等基本配置、参数化、公共方法

现在我们很容易就把框架的结构搭建好了:

接下来有一些选择题要做了:
Python 2 or 3? Selenium 2 or 3?
Python 3的使用越来越多,而且3的unittest中带有subTest,能够通过子用例实现参数化。而用2的话需要unittest2或其他的库来实现,所以我们这里选用Python 3。
Selenium 3刚发布正式版不久,一些功能driver还没来得及跟上,尤其是geckodriver,所以选择Selenium 2(注意PY3的话要选择SE2.53.1)。
环境选择其实影响不大,你也可以选择你自己习惯的环境。

配置文件
配置文件我们有多种选择:ini、yaml、xml、properties、txt、py等
鉴于我之前写过一篇yaml的博文,我们这里就用yaml吧。
所以我们在config文件夹里创建config.yml文件,在utils里创建一个config.py文件读取配置,内容暂且不管。

现在可以简单把测试框架勾画一下
第一篇:首先我们要把配置抽出来,用yaml文件放配置。所以我们要在config层添加配置文件config.yml,在utils层添加file_reader.py与config.py来管理。— 搭建配置(1)。

第二篇:然后我们将python自带的logging模块封装了一下,从配置文件读取并设置固定的logger。在utils中创建了log.py。— 封装日志(2)。

第三篇:然后封装xlrd模块,读取excel,实现用例的参数化。— 参数化(3)。

第四篇:然后是生成HTML测试报告,这个博主修改了网上原有的HTMLTestRunner,改为中文并美化,然后修改其支持PY3。你可以直接拿去用。— 测试报告(4)。

第五篇:然后我们给框架添加了发送邮件报告的能力。在utils中添加了mail.py。

第六篇:然后我们将测试用例用Page-Object思想进行封装,进一步划分test层的子层。— 测试用例封装(6)。

第七篇:接下来为了接口测试封装client类。在utils中添加了client.py。— 接口封装(7)。

第八篇:然后添加了一个简单的自定义断言,在utils中添加assertion.py,可用同样的方法自行扩展。— 断言(8)。

第九篇:接下来我们为了抽取响应结果,用JMESPath封装Extractor,在utils中添加extractor.py。— 抽取器(9)。

第十篇:然后是生成器。为我们自动生成固定类型的测试数据。utils下创建了generator.py。— 数据生成器(10)。

第十一篇:最后为了一些项目中的支持方法,如加密、签名等,创建支持库support.py。— 扩展方法(11)。

整个流程下来我们一个简单的框架就像模像样了,在此基础上可继续完善,实际用在项目中也没有什么问题,再简单结合Jenkins部署起来,定期或每次代码提交后可自动运行测试,直接把测试报告发送到项目成员手中,妥妥的!。

所有的代码我都放到了公众号,可以自己下载去学习。有什么好的建议或者问题,可以留言讨论。

作者:西边人
公众号请搜索(软件测试资源站)
关注后私信回复 入群,加入自学社群联盟。


西边人细说测试,西边人现更名马蚁蛋,常年混迹在互联网圈的测试开发一枚。爬虫搬运互联网资源,分享给自学爱好者。
公众号:testpu 
简书:@西边人
微博:@ 西说测试
QQ群:330374464

阅读更多

没有更多推荐了,返回首页