6、编写自动化测试用例代码
在设计好架构后,我们就需要编写我们的测试用例代码,这个时候也是有方法的。分为以下两种级别:
(一)高级大牛级别。
此级别的测试开发人员非常熟悉具体的业务流程,能设计出每个功能模块所用到的具体操作;清楚可能用到的每个元操作,能拆分出松耦合,使用率高的函数。
在这种情况下,按如下步骤进行我们的自动化测试工程:
(1) 先封装具体的公用函数,测试每个公用函数都测试是否符合预期的要求,如果符合封装完成。编写xml数据读写函数,以便我们对测试数据进行操作。
(2) 组织测试用例需要用到的测试数据,编写对应的测试数据文件Xml,把需要定位操作的定位地址,输入输出数据都放到这个文件中。
(3) 调用公用函数,读取测试数据,组织具体的测试用例,编写测试用例文件并进行调试。
(4) 根据不同的使用场景,如测试环境,仿真环境或是线上环境,组织不同的测试套件文件,灵活使用。
(二) 中高级测试开发级别。
一般情况下,我们单独去设计公用函数是很难的,这个需要对业务和自动化测试有非常深入的了解和一定的沉淀。而初次接触或是经验不足的同学,可以采取我们现在的这种方法:从测试用例入手,逐步完善我们的自动化测试工程。这也是我们本章需要详细讲解的问题,我们以实例讲解。
任务:现有一个众筹网的App,需要我们做自动化测试。
条件是:从零开始,一无所有。
已完成的任务:
(1)测试框架使用Appium开源框架,语言使用python语言。
(2)相应的环境已搭建完成,编写具体测试用例已能成功运行。
现在的任务是:完成具体的移动自动化测试工程。
具体实施步骤如下:
(一)提交具体需要实施的自动化测试用例
在我们了解了具体的众筹网的业务后,我们提取出核心业务如:登录,注册,查看项目,支持项目,跟进项目进度,个人中心相关操作等。
(二)计自动化测试架构
根据我们上面讲解的思路,我们创建一个工程,如:MobAutoZhongChouPro,并在工程下创建四个package,分别如下:
CommonFunctions:公用函数层,存放工程用到的公用函数。
TestCases:测试用例层,存放测试用例脚本。
TestData:测试数据层,存放测试用例对应的测试数据。
TestSuites:测试用例集层,存放使用不同场景的测试用例集文件。
创建完成后,如图6.1所示:
图6.1 设计自动化测试工程架构
(三)通过用例完善工程。
在创建完工程架构后,就要填写相应的代码。首先要先编写通用函数,我们做的是移动自动化测试的,所有的测试用例需要做的操作就是打开手机上面的App,如果没有这个App则先安装。
(1)封装打开app的函数,我们创建通用类CommonFunctions,在里面创建函数setup(),注意是小写的,要和unittest的setUp()区分开。
def setup(self): ''' 打开App并且滑过欢迎页 ''' global DRIVER desired_caps={} desired_caps['device'] = 'android' desired_caps['platformName']='Android' desired_caps['browserName']='' desired_caps['version']='4.4.2' desired_caps['deviceName']='HM_2A' #小米 desired_caps['app'] = PATH('../../app/zhongchou.apk') DRIVER=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) time.sleep(5) #2.滑屏 DRIVER.swipe(600, 660, 10, 660, 1000) time.sleep(1) DRIVER.swipe(600, 660, 10, 660, 1000) time.sleep(1) DRIVER.swipe(600, 660, 10, 660, 1000) time.sleep(2) DRIVER.find_element_by_id("com.subject.zhongchou:id/bt").click() time.sleep(2) DRIVER.tap([(600,600)], 10) time.sleep(2) |
在这个函数中,我们先是检测手机上有没有安装App,如果没有则安装 ,如果有则打开。众筹的App打开的时候有一个欢迎页,所以要增加滑过欢迎页,进入主页的操作。