一、前言
最近开始鼓捣Appium的ios相关api方法,ios 和android的方法还是略有不同,在加上环境不同,难以实现一套api代码来实现跨平台的自动化测试。关键是跑IOS自动化,得要苹果系统,各种开发的签名证书,xcode编译,想想都比较恐怖,只能求助开发,或者学些xcode使用的方法,证书编译的和安装。没毛病~。
自古以来总结一句话:不管你是做哪个IT行业,围绕我们的都是恼人的各种环境的不兼容,报错,内存溢出、哇哇、运行错误只能抓头发。
期初有两个想法、自己利用poi 来实现把excle的数据,读过来放到appium的方法中。感觉代码写的一箩筐,不够优雅!跟TestNg做整合也比较麻烦。上git上搜搜,看看有木有增强TestNG的插件。
不搜不知道,一搜吓一跳,确实看中了一款,利用注解可以实现TestNg注解读取Excel,代码个人感觉写的比较优雅。总觉得appium客户端的Driver 太多。这里统一封装个超级Driver和常用Action动作的方法,常用的滑动,缩放、点击、等方法,进行封装。最后谁说Java代码比较啰嗦。不算注释和注解的行数,还是以3行代码搞定移动端的数据驱动自动化测试。
@XlsDataSourceParameters excel注解式数据驱动 git 开源地址:https://github.com/qaprosoft/carina
二、appium4.xlsx,执行文件
Driver 启动参数化待定。
动作描述:打开手机浏览器原生app,发起URL请求访问百度,切换到WEBViEW视图。然后定位百度搜索框和百度一下按钮的 xpath定位值并通过定位输入java之后点击确认安按钮,在搜索的结果 页,验证是否包含java关键字。
参数:TUID :用例的id。pos:定位方式。(如没有定位则填无) posval:定位元素的值和路径。 action:具体的动作 。 input:动作输入数据(如sendkeys的动作就需要数据,其他动作可填无)
Execute
|
TUID
|
pos
|
posval
|
action
|
input
|
Y
|
CLC0001
|
无
|
无
|
打开URL&切换WEBVIEW
|
|
Y
|
CLC0002
|
XPath
|
//*[@id='index-kw']&//*[@id='index-bn']
|
输入&点击
|
java
|
三、maven项目jar包引入
这个哥们,引入了好多jar包,可能会跟自己的appium冲突,要做好<exclusions>排重。
<dependency>
<groupId>com.qaprosoft</groupId>
<artifactId>carina-core</artifactId>
<version>LATEST</version>
</dependency>
四、使用方法
1、建一个类继承至AbstractTest
public class DataprovidersSampleTest extends AbstractTest {
2、把这三个注解写在要执行的方法的头部,这个增强注解,是基于TestNg的,所以要先装好TestNG,才能执行哦~。
@Test(dataProvider = "SingleDataProvider", description = "JIRA#DEMO-0009")
@MethodOwner(owner = "qpsdemo")
@XlsDataSourceParameters(path = "xls/appium4.xlsx", sheet = "Calculator", dsUid = "TUID", dsArgs = "pos,posval,action,input,ret")
@XlsDataSourceParameters 是作者实现Excel数据与TestNG交互的一个核心注解。
path:是本地excle的路径。 sheet:是excle中的要执行的sheet名称。 dsUid :用户执行的id。
重点参数:dsArgs ("pos,posval,action,input,ret") 这个是参数的名字,一定要跟Excel 数据文件里面表头的字段名字一一对应。
appium4.xlsx
五、运行结果
结尾:
自己目前封装的方法,比较粗糙,待整理一番,在开源出来哈。
您的分享转发就是我开源的动力~
有任何疑问欢迎留言在博客下方或者搜索Appium百度贴吧,进行留言!