基于上一篇的初步框架搭建和测试【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代码如下

                  
                  
                  
                  
本文档继续上一篇关于appium、python、夜神模拟器和jenkins进行android自动化测试的实践,主要介绍对测试脚本框架的优化。优化后的框架包括common(共通方法)、report(测试报告)、testcase(测试用例)和allcase_list.py(测试用例整合)。在实现测试循环时,遇到webdriver session变化的问题,通过定义全局变量GLOBAL_DRIVER解决。在testcase中,使用import XX.XX而不是from XX import XX来确保全局变量的正确引用,因为from XX import会使得变量在当前模块内静态化,无法感知全局变量的变化。文章最后展示了test_main.py的部分代码。
          
最低0.47元/天 解锁文章
                          
                      
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            