首页 > 软件测试/ 正文
UI测试的设计层次
2012-09-18 18:50:15 ℃根据我做UI测试的经验,将自己做UI测试的理解总结如下(这里UI测试指Web应用UI自动化测试或者桌面UI自动化测试,这些UI有一个特点是UI元素间的关系都是父子关系或者兄弟关系,能组成一个UI树):
第一层次:在测试用例中,直接使用Selenium或者UI工具的API,如
Selenium.Click(“//div[@id='mail-nav']/ul/li[3]/a”) |
第二层次:将UI地址直接写在测试用例中,会导致UI地址重复率增大,而且不好根据UI地址来维护。按照UI页面或者模块将对地址操作分化到测试底层中,测试用例层只管测试逻辑,如:
在底层设计中LoginPage类,
Class LoginPage{ loginButton = “//div[@id='mail-nav']/ul/li[3]/a”; void Login(username, password){ ….. Selenium.Click(loginButton); …. } } |
在测试用例中,就见不到对UI地址的操作了,如:
loginPage.Login(“name”,”defpassword”) |
第三层次:将UI地址hardcode到代码中不好的地方是,UI地址一旦变化,就必须要重新编译源代码,因此建立地址库,将UI地址存放在xml或者json等文件中。其好处是只要测试需求或逻辑不变,即使页面变化了,也无需更改代码,只需维护地址库文件,如:
@AddressPage(“LoginPage.xml”) Class LoginPage{ …… } |
第四层次:以上三个层次主要在解决UI地址随UI界面变化而极易变化,导致测试用例维护增大,但UI测试每一个对UI的操作都可能失败,是极不稳定的。因此,扩展Xpath或者UI工具提供的定位机制,并且在每操作UI前,先判定UI是否存在,如不存在再等待一段时间。如:
//div[@id='mail-maillist']/div[2]/table/tbody/tr[{0}]/td[6]/a/span/span sleep=2 //AliBrowserFrameA[@global='ACCNAME_BACK'] |
第五层次:扩展工具,基于UI工具做二次开发,将UI操作抽象为如下几个操作,并且能动态加载地址库与生成地址库
在测试用例中使用:
DeskUI.Click(“loginButton”) |
工具的扩展接口:
class DeskUI: @staticmethod def Open(exePath, param=”"): @staticmethod def Click(uiPath, offset=0): @staticmethod @staticmethod @staticmethod @staticmethod @staticmethod @staticmethod |
- 上一篇:软件测试管理以及与自动化测试的完美结合(上)
- 下一篇:开发人员与测试人员的前世今生
更多周口web前端开发培训学校,周口适合不想上学的学生读的技术学校,许昌电脑学校口碑比较好的,许昌3加2中专技校哪家好,许昌java培训在哪里,在郑州北大青鸟学java是一种什么样的感相关文章
- 如何利用JAVA执行本地EXE文件
- 使用Java管理千台规模Linux服务器
- 代码审查最佳实践
- 大话js代码静态检查
- 什么是软件测试架构
- 软件测试工程师面对职业挑战:跳出测试看测试
- 为什么要做探索性测试
- 嵌入C语言的测试驱动开发:为什么要调试?
- 软件测试流程
- 淘宝Android/IOS自动化测试框架
- 谷歌如何做软件测试?——第六部分
- 论软件项目质量管理
- 软件质量控制实践――Microsoft 篇(3)
- 软件质量评价内容
- 同行评审那些事儿(四):各种评审的形式
- 软件项目质量管理实战总结(上)
- 软件项目管理中质量控制的研究与应用
- 将软件测试阶段按照生命周期的方法去分析
- 用“质量门”确保项目质量
- 过程质量管理实践的组合应用
- 怎么让U盘加密
- 智能手机和非智能机的区别
- 电脑操作最忌讳的18个小动作
- 32位系统和64位系统有什么区别
- 手机储存卡真假识别宝典
- 电脑关机后需要关电源吗
- 格式化会影响硬盘寿命吗
- 软件测试培训课程包含哪些内容?
- 软件开发需要学什么?
- 软件工程师工作好吗
- 搜索
-
- 热门标签