51Testing软件测试论坛

标题: Python 自动化Web测试 [打印本页]

作者: 橙子0012    时间: 2018-2-28 16:44
标题: Python 自动化Web测试
本帖最后由 橙子0012 于 2018-2-28 16:46 编辑

公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用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接口为我们提供了这样的功能,指定不同的目录,
就相当于指定不同的模块进行测试,指定根目录代表要对产品进行整体的测试。如这是迪备产品
测试的雏形树状图:

基本的有了头绪,又有一个问题浮出水面了,那么测试用例的数据又是应该怎样存放的呢?用t
xt文件,就要定义存取数据的格式,同时规定所有的测试人员都使用这样的格式,这样做会比
较牵强。那倒不如用一种人所皆知,并且易学的格式,python对XML格式的支持比较强大,最
终决定使用XML文件。使用XML存取测试用例的数据,不但存取方便,并且可以设计测试用例
与写相应测试脚本的人是不同的人。以下是测试迪备产品的一些测试,包含用例的设计,XML
测试用例配置文件和测试脚本的分析



作者: 梦想家    时间: 2018-2-28 17:01





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2