基于上一篇的初步框架搭建和测试【appium+python+夜神模拟器+jenkins进行android端自动化测试】,本篇将记录对脚本编写框架优化后的情况;
整体框架如下:
common:共通方法目录
report:测试报告目录,根据循环测试的次数,形成对应的报告
testcase:具体测试用例目录,并返回用例suite
allcase_list.py:整合所有的测试用例,形成一个testsuite
app.py:启动app应用,定义全局变量webdriver,供整个测试过程调用
test_main.py:测试入口,接受测试循环次数,执行测试,形成测试报告;
在整合这个框架的过程中遇到一个问题:因需循环测试app,webdriver session会根据每次启动程序而发生改变(第二次启动通过定义的方法实现);为此定义了全局变量GLOBAL_DRIVER供整个测试过程调用,每次启动修改此全局变量;
testcase中引用的方式就很重要,如果采用from XX import GLOBAL_DRIVER 则永远获取到的是第一次产生的webdriver;需直接import XX,然后通过XX.GLOBAL_DRIVER方式调用方可;
大致理解应该是通过from XX import的方式,直接将变量导入到了当前模块,成为当前模块的一个变量;后续全局变量值的改变,XX无法感知,当前模块也无法感知;
import XX的方式,是在当前模块建议了一个XX的引用,XX的所有改变,XX可以感知,当前模块也可以感知
不知理解可对,欢迎有经验人士指教;
test_main.py代码如下