Selenium自动化测试——巡检脚本开发(下)

9、script

script目录创建时选择“Python Package”格式。测试引擎脚本存放路径,如测试执行时驱动所有测试业务、测试用例的脚本文件module.py。

module.py包含测试集读取函数read_testsuite、获取驱动函数get_driver、测试用例读取函数read_testcase、测试执行函数exec_script。

(1)read_testsuite

read_testsuite函数负责解析测试场景文件。os.path.abspath方法获取当前脚本的执行路径,以便于data目录中的testsuite.xlsx测试场景文件。通过引用os.path方式,增强了脚本的可移植性。

测试脚本代码用for irow in range(2, ws.max_row + 1)循环迭代读取测试场景文件testsuite.xlsx中的每一行记录,通过传入的测试场景名称,先判断是否存在需测试的场景名称,如果有则再用if testoperation=='do'判断是否要获取第三项中保存的场景文件名。

这里关键字do代表的是执行,第二列的关键字可以根据将来的需要进一步拓展,设计更多的关键字。

read_testsuite代码如下:

Selenium自动化测试——巡检脚本开发(下)

(2)get_driver

根据测试场景文件确定调用何种浏览器,并启动浏览器。

Selenium自动化测试——巡检脚本开发(下)

(3)exec_script

exec_script(testpage,teststep,testaction,testdata)功能是接受testpage,teststep,testdata三个参数,分别代表主页类(对象),页面元素,页面数据。

代码首先判断主页类(testpage)属于那个类,这些类是已经实现的page object类。testpage类中有一个是浏览器类,是Webdriver实现的。脚本分别实现了三个类的testpage判断,分别是浏览器、登陆页面类、主页页面类三个类。

1)浏览器

按照teststep判断浏览器类型,根据参数设置,生成firefox、IE及chrome的对象实例,最后请求testdata变量保存的网页链接。

2)登陆页面类

执行teststep用户名或密码等动作,来执行页面对象的操作,操作数据用传入的testdata。

3)主页页面类

执行退出ECShop动作、查找页面元素等涉及主页面中相关元素的操作。

exec_script代码如下:

(4)read_testcase

read_testcase(testcasefile)是解析testcase文件如login.xlsx,userregister.xlsx等,参数是测试用例文件路径。

for irow in range(2, ws.max_row + 1)是从第二行开始遍历,ws.max是获得测试用例文件有测试脚本指令的行数,参数从2开始,是因为第一行是标题,第二行开始才是正式脚本。

Testpage,teststep,testdata分别保存了测试用例文件(userregister.xlsx,login.xlsx)中的page,step,data数据,它们代表了页面类,元素对象,元素数据。然后作为参数传给exec_script函数。

read_testcase代码如下:

Selenium自动化测试——巡检脚本开发(下)

上述代码并未包括模块引入部分的代码,完整module.py代码请联系汇智妹领取。

10、tools

tools目录创建时选择“Directory”格式。存放浏览器驱动文件,一般可将firefox、ie及chrome的驱动文件放在此处,路径与common目录的浏览器启动函数browserlauncher所定义的路径相同。

通过绝对路径调用驱动文件的代码如下:

Selenium自动化测试——巡检脚本开发(下)

对于firefox及chrome浏览器可采用类似的方式处理,但是直接引用绝对路径的方法笔者感觉不稳定,建议最好的方法是将所需的浏览器驱动文件放在python的根目录下,即根据《附录五Selenium开发环境配置手册》的方法操作。

11、run.py

集成Pyton语言unittest方法,从而便于测试场景的管理,run.py是ECShop工程脚本执行的入口。

此处将用户注册、用户登陆测试场景统一设置在test_Ecshop函数中并调用执行,根据函数的返回值,判断测试场景执行的成功与否,然后通过HTMLTestRunner方法,将测试结果以HTML格式输出。

Selenium自动化测试——巡检脚本开发(下)

通过上述步骤,ECShop自动化测试框架设计并开发完成。

发布了86 篇原创文章 · 获赞 243 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_43802541/article/details/105239445