PO模式测试脚本框架:
完善框架 补充用例
(1) 什么是PageObject?
简称PO,这是一个设计模式,其实设计模式就是代码的
架构
,一个整体的框架
。例如mvc 就是模型-视图-控制的一个代码架构,mvp就是-模型-视图-主持 这样的一个架构。PageObject翻译过来就是页面对象的意思,就是
把页面对象和逻辑操作分开
。
(2) PageObject的好处
做UI自动化时定位特别依赖页面,一旦页面发生变更就不得不跟着去修改页面定位。
,假设你想对一个元素定位操作,你可能会编写下面的代码:
driver
.findElement
(By
.id
(
"comit"
))
.click
()
;
于是问题就出来了,这样代码冗余就高了。都写一块了,后期难维护。你有10个地方对这个元素做了这个操作,哪天这个控件的元素变了,你就不得不去修改10个地方。
那么po的好处就出来了,方便维护、减少代码冗余、逼格高
(3) 目录格式结构
- base //放封装好的基类(pageAppium、operationAppium、CaseAppium)
- cases //用例 (用例层:调用【opeartion】层实现用例)
- opeartion //放逻辑处理 (操作层:调用【pages】层模拟手工操作当前app页面控件的方法封装)
- pages //页面元素处理 (控件层:获取当前app页面控件的方法封装)
(4) base+pages+opeartion+cases包代码
写case时,
使用UIAutomatorViewer获取每个界面的控件元素信息
给每个case添加断言
多个case时可以设置优先级
给每个case设置@Test注解
uiautomatorviewer在sdk的tool目录下,运行uiautomatorviewer.bat即可(可以右击发送快捷方式到桌面)。打开后的界面是这样的:
界面详解
open: 打开保存的截图文件
device screenshot: 获取当前界面所有控件内容
device screenshot with compressed hierarchy: 选择只获取界面中呈现在你面前的控件
save: 保存界面控件内容到文件
Expand All: 展开全部结点
Toggle naf nodes: 查看不能被uiautomator测试工具访问到的控件。这些控件只设置了有限的属性,所以导致uiautomator无法获取到这些控件。
搜索、上一个、下一个、清除搜索结果、搜索到的数量、坐标
(5) 运行case测试用例
使用Testng来执行测试用例
1.下载Testng
Android
studio 添加依赖即可 ,在gradle的dependencies下面添加
(当前最新是6.9.6)
compile
'org.testng:testng:6.9.6'
2.添加Testng插件
AndroidStudio已经默认添加了,在File-Setting-Plugins 搜索即可看到
3.使用Testng
新建一个测试类,新建方法,在方法上面添加注解即可
4.运行Testng
在测试的module的根目录下新建
testng.xml,
名字随你,内容正常即可。详细的内容配置可以看官网:
http://testng.org/doc/documentation-main.html#testng-xml
右键,运行即可
(6) 输出报告
测试报告ReportNg
testng自身带有测试报告,但是内容难以观看理解,所以这里利用了ReportNg
1. 导入jar包
这个包是经过修改的,支持中文,放到测试的module的libs文件夹,右键add as library,不懂的看前面的文章。
再在gradle的dependencies里面添加两个包:
compile
'com.google.inject:guice:4.1.0'
compile
'org.anarres.gradle:gradle-velocity-plugin:1.0.7'
2. 添加监听器
修改刚刚的testng_login.xml ,添加了listeners,再次运行这个xml,在module目录下就会看到有test-output测试报告的文件夹,有html和xml格式的
<
suite
name
=
"Suite"
>
<
test
name
=
"Test"
>
<
classes
>
<
class
name
=
"com.example.cases.Login"
/>
classes
>
<
listeners
>
<
listener
class-name
=
"org.uncommons.reportng.HTMLReporter"
/>
<
listener
class-name
=
"org.uncommons.reportng.JUnitXMLReporter"
/>
listeners
>
test
>
suite
>
3. 查看测试报告
在index.html右击选择浏览器打开
封装和demo打包下载:
http://download.csdn.net/detail/niubitianping/9647551