Python 自动化Web测试

限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。

公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟用户的操作,这样的测试对于回归测试效果尤佳,减少了人工操作,极大地提高了效率。

据网上资料得知,python的web测试开源世界,存在splinter,它是自动化测试web的框架,这是最为基本的Web-driver。然后加上selenium,两者并用,才能支持主流的浏览器的firefox, chrome 和IE ,到目前为止,支持chrome浏览器的最为齐全,连鼠标的模拟的API都存在,同时对其余两大浏览器的支持也甚为不错。

有了splinter+selenium,已经可以模拟用户的操作了。但是怎样才能有效地模拟那么多业务的操作,并且能知道业务的执行是成功还是失败呢?这就需要python的单元测试框架了,它能有效地组织这些业务逻辑的测试执行,执行完毕后,显示出各个执行的结果,所谓的业务逻辑可以理解为各个测试用例。

python的单元测试需要自己把测试用例(TestCase)加入到测试集里(testSuite), 然后再runTest()进行测试。但我从python2.7.3的单元测试文档,发现更能让测试自动化的接口,那就是discover函数,它能找出指定目录包括其子目录下文件名符合某种样式的测试用例Testcase或测试模块,并且放入到测试集里面自动执行。这里是文档中关于discover函数的描述:

def discover(self, start_dir, pattern='test*.py', top_level_dir=None):

Find and return all test modules from the specified startdirectory, recursing into subdirectories to find them. Only test files that match the pattern will be loaded.

复制代码
关于discover函数更加详细的用法,请查看文档和阅读其源代码。
因为我们测试产品的时候,都会有层次,分模块,或者整体地去测试,discover接口为我们提供了这样的功能,指定不同的目录,就相当于指定不同的模块进行测试,指定根目录代表要对产品进行整体的测试。
如这是迪备产品测试的雏形树状图:
复制代码
基本的有了头绪,又有一个问题浮出水面了,那么测试用例的数据又是应该怎样存放的呢?用txt文件,就要定义存取数据的格式,同时规定所有的测试人员都使用这样的格式,这样做会比较牵强。那倒不如用一种人所皆知,并且易学的格式,python对XML格式的支持比较强大,最终决定使用XML文件。使用XML存取测试用例的数据,不但存取方便,并且可以设计测试用例与写相应测试脚本的人是不同的人。
以下是测试迪备产品的一些测试,包含用例的设计,XML测试用例配置文件和测试脚本的分析

B站最完整Python接口自动化测试进阶教程合集!真实模拟企业项目实战,看完这套就够了

相关推荐
Mr.D学长17 分钟前
毕业设计 深度学习社交距离检测系统(源码+论文)
python·毕业设计·毕设
丁总学Java20 分钟前
微信小程序-npm支持-如何使用npm包
前端·微信小程序·npm·node.js
wdxylb21 分钟前
解决Python使用Selenium 时遇到网页 <body> 划不动的问题
python
代码骑士29 分钟前
【一起学NLP】Chapter3-使用神经网络解决问题
python·神经网络·自然语言处理
懒羊羊大王呀31 分钟前
CSS——属性值计算
前端·css
无咎.lsy1 小时前
vue之vuex的使用及举例
前端·javascript·vue.js
fishmemory7sec1 小时前
Electron 主进程与渲染进程、预加载preload.js
前端·javascript·electron
fishmemory7sec1 小时前
Electron 使⽤ electron-builder 打包应用
前端·javascript·electron
wxin_VXbishe1 小时前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
ITenderL1 小时前
Python学习笔记-函数
python·学习笔记