博兴县城乡建设局网站,百度百家号官网,淘宝天猫做网站咨询,企业网站建设套餐价格8.8.1 自动化测试模型概述
在自动化测试运用于测试工作的过程中#xff0c;测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象#xff0c;总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。
线性测试
首先#…
8.8.1 自动化测试模型概述
在自动化测试运用于测试工作的过程中测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。
线性测试
首先我们一起来看下使用Bing搜索APP来搜索“于涌 loadrunner”的操作步骤。打
开Bing搜索应用后会出现一个引导界面单击“跳过”按钮如图8-196所示。 图8-196 跳过按钮及对应的ID相关属性信息 然后单击搜素框如图8-197所示。 图8-197 搜索框及对应的ID相关属性信息 而后在出现的搜索文本框输入“于涌 loadrunner”搜索词如图8-198所示。 图8-198 搜索文本框及对应的ID相关属性信息 最后单击“全部”按钮如图8-199所示。 图8-199 全部按钮及对应的ID相关属性信息 上述过程的脚本代码如下所示 from appium import webdriver import time caps { platformName: Android, deviceName: 127.0.0.1:62001, platformVersion: 5.1.1, appPackage: com.microsoft.bing, appActivity: com.microsoft.clients.bing.app.MainActivity } driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, caps) #单击跳过按钮driver.find_element_by_id(com.microsoft.bing:id/skip_text).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1) #单击搜索框driver.find_element_by_id(com.microsoft.bing:id/search_box).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1) #向搜索文本框输入查询的搜索词内容driver.find_element_by_id(com.microsoft.bing:id/search_text_field).send_keys(于涌 loadrunner) #单击“全部”按钮driver.find_element_by_id(com.microsoft.bing:id/opal_as_web).click() 通过自动化测试工具录制或者编写脚本的时候按照业务操作步骤产生的相应线性脚本
每个脚本相对独立不依赖于其他脚本。在前面章节我们写的脚本基本都是线性脚本不知道大家有没有发现这样的脚本存在什么问题呢是的这种类型的脚本结构清晰明了但脚本代码相对冗长。举个例子假设要在Bing搜索搜索2次关键词那么每次都有定位元素重复性的脚本代码如下所示。 from appium import webdriver import time caps { platformName: Android, deviceName: 127.0.0.1:62001, platformVersion: 5.1.1, appPackage: com.microsoft.bing, appActivity: com.microsoft.clients.bing.app.MainActivity } driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, caps) #单击跳过按钮driver.find_element_by_id(com.microsoft.bing:id/skip_text).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1)#单击搜索框driver.find_element_by_id(com.microsoft.bing:id/search_box).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1) #向搜索文本框输入查询的搜索词内容driver.find_element_by_id(com.microsoft.bing:id/search_text_field).send_keys(于涌 loadrunner) #单击“全部”按钮driver.find_element_by_id(com.microsoft.bing:id/opal_as_web).click()#等待2秒让大家看到搜素后的结果信息time.sleep(2) #单击“返回”按钮参见图8-200所示driver.find_element_by_id(com.microsoft.bing:id/opal_toolbar_back).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1) #单击搜索框driver.find_element_by_id(com.microsoft.bing:id/search_box).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1) #向搜索文本框输入查询的搜索词内容driver.find_element_by_id(com.microsoft.bing:id/search_text_field).send_keys(于涌 Appium) #单击“全部”按钮driver.find_element_by_id(com.microsoft.bing:id/opal_as_web).click() 图8-200 返回按钮及对应的ID相关属性信息
大家不难发现每进行一次搜索都有至少4行重复性代码。那么如果我们要搜索10个关键词就会有40行重复性元素定位、操作的代码。
模块化驱动测试
模块化驱动测试借鉴了编程语言的思想将一些经常使用的重复性代码给封装成类或者放到一个公共模块封装为函数方便业务脚本调用它们而减少冗余代码。
这里同样给大家举一个例子就是将搜索的重复性过程封装到一个公共模块写到函数里代码如下所示。
comm.py文件 import time def searchkey(driver,kw): #等待1秒钟目的让后续元素能够显示出来再操作 time.sleep(1) #单击搜索框 driver.find_element_by_id(com.microsoft.bing:id/search_box).click() #等待1秒钟目的让后续元素能够显示出来再操作 time.sleep(1) #向搜索文本框输入查询的搜索词内容 driver.find_element_by_id(com.microsoft.bing:id/search_text_field).send_keys(kw) #单击“全部”按钮 driver.find_element_by_id(com.microsoft.bing:id/opal_as_web).click() ys_modularization.py文件 from appium import webdriverfrom comm import searchkey import time caps { platformName: Android, deviceName: 127.0.0.1:62001, platformVersion: 5.1.1, appPackage: com.microsoft.bing, appActivity: com.microsoft.clients.bing.app.MainActivity } driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, caps) #单击跳过按钮driver.find_element_by_id(com.microsoft.bing:id/skip_text).click()searchkey(driver,于涌 loadrunner)#等待2秒让大家看到搜素后的结果信息time.sleep(2) #单击“返回”按钮driver.find_element_by_id(com.microsoft.bing:id/opal_toolbar_back).click() #等待1秒钟目的让后续元素能够显示出来再操作time.sleep(1)searchkey(driver,于涌 Appium) 结合上面两个脚本作者将搜索的重复性过程封装到comm.py文件。封装了一个名称为searchkey()的函数包含3条元素定位、操作语句和1条睡眠语句。而后在业务测试脚本testscript.py文件导入comm模块的searchkey函数。只需调用2次searchkey函数就执行了先前8条语句的内容可以看出封装后代码量明显减少。 当然除了将重复代码封装成公共函数以外还可以使用PageObject设计模式将页面元素和操作封装成类进行调用这个内容作者将在“PageObject设计模式”章节进行详细讲解。它也属于模块化驱动测试。 用ChatGPT做软件测试