51Testing软件测试论坛

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

作者: lsekfe    时间: 2016-11-2 11:10
标题: 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测试用例配置文件和测试脚本的分析

作者: Miss_love    时间: 2016-11-2 11:35
支持乱码
作者: 清晨一缕阳光    时间: 2016-11-2 12:25
这个必须支持!
作者: 萧小先生    时间: 2016-11-5 15:19

作者: qq2513953126    时间: 2016-11-8 16:53

作者: nihaicheng    时间: 2016-11-18 10:56
还有内容呢?




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