Appium 自动遍历工具 Java 版 (v1.2.0)

扫地僧 · 2016年08月31日 · 最后由 dora2014emon 回复于 2016年11月29日 · 2749 次阅读
本帖已被设为精华帖!

第一版传送门,由于特殊原因,GitHub 源码过段时间更新

V2.1.0 更新说明

1. 增加错误日志报告

支持 ANR、Error、Crash 三种类型问题的辅助定位,时间段可自定义前后偏移量,部分内容如下所示:

时间戳 异常日志 相关操作 相关截图
2016-08-26 17:05:27 错误日志 ... 该时间段相关操作 ... 该时间段相关截图 ...
2016-08-26 17:15:06 错误日志 ... 该时间段相关操作 ... 该时间段相关截图 ...



<!--异常日志关联操作的时间偏移量(单位:秒) 前后2个数字分别代表前xx秒的操作和后xx秒的操作-->
<report>
    <timeOffset>20,10</timeOffset>
</report>

2. 截图增加运动轨迹

<!--截图运动轨迹模式  0-错误的时候画(默认), 1-所有都画-->
<drawRect>1</drawRect>

3. 支持遍历模式和业务场景模式开关

<!--运行模式 1.遍历模式 2.业务场景模式-->
<runMode>1</runMode>

业务场景模式:支持 tips、slide、wait、tap、assert、scrollTo、click、input、reLogin、gesture、include 等行为。

<!--tips-->
<step>tips>>禁止|允许>>//android.widget.Button[@resource-id='com.huawei.systemmanager:id/btn_allow']</step>
<!--slide-->
<step>slide>>3</step>
<!--tap-->
<step>tap>>x:0.3,y:0.178,finger:1,touchCount:1,duration:0</step>
<!--input-->
<step>input>>xpath:://UIAApplication[1]/UIASecureTextField[1]|demo</step>
<!--assert-->
<step>assert>>page::contain|首页</step>
<step>assert>>page::contain|首页,旗舰店</step>
<!--scrollTo-->
<step>scrollToExact>>NCF环保B</step>
<!--wait-->
<step>wait>>5</step>
<!--click-->
<step>click>>xpath:://UIAApplication[1]/UIAWindow[1]/UIATableCell[7]</step>
<!--reLogin-->
<step>reLogin>>true</step>
<!--gesture-->
<step>gesture>>xpath:://UIAButton[@name='blue circle']</step>
<!--include module file-->
<step>include>>/Users/mac/Documents/AutoTraveler/config/case_demo.xml</step>

include引用的模块文件,请参照格式如下所示:

<?xml version="1.0" encoding="UTF-8"?>
 <module>
    <!--点击类型设置-->
    <step>click>>xpath:://UIAApplication[1]/UIAWindow[1]/UIAButton[2]</step>
    <step>wait>>5</step>
    <step>tap>>x:0.5,y:0.178,finger:1,touchCount:1,duration:0</step>
</module>
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 33 条回复 时间 点赞

抢沙发,楼主辛苦!

思寒_seveniruby 将本帖设为了精华贴 09月01日 12:46

加精理由: 在原有自动遍历开源项目的基础上有较多的创新亮点.

😀
日志终于做完了啊

#4 楼 @kinget007 嗯,这次改动比较大

#5 楼 @quqing 啥时候开呀~

#6 楼 @addison 上次那问题可以了吗

这个东西看起来不错。。

不错,对这个还是蛮有期盼的,
如果能解决执行效率会更完美

期待共享代码学习

扫地僧 [该话题已被删除] 中提及了此贴 09月21日 14:09

请教一个问题,你的测试报告是调用的什么框架吗?还是用的 org.apache.log4j.HTMLLayout,貌似这个不能定制哦~

#13 楼 @jet 你的意思是你没有调用框架,自己重新写的啊👍

#14 楼 @huangxiaojiao 只是看到你提及这个 Layout - org.apache.log4j.HTMLLayout . 就想起来以前曾用这个为基类重写方法,来作测试报告。

oh no 无论如何我现在是怎么也写不出这些代码的。。看了源码,深感差距之大

期待开源

#12 楼 @huangxiaojiao 这个是自己写的

期待开源

@quqing 楼主,这个什么时候能开源? 期待开源,感谢提供这么赞的思想和工具。初版 autotravel 看了,感受颇深,赞!

期待 更新 开源代码!参考学习!

java -jar AutoTraveler.jar android /Users/weige/Desktop/gitdir/AutoTraveler/config/android.xml
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/Capabilities
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at pers.traveler.robot.RobotFactory.build(RobotFactory.java:13)
at pers.traveler.test.Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.Capabilities
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more

请问 上一个回复中的 这个错误怎么解决?

#23 楼 @mengde0077 我也遇到這個問題。。

问题已经解决!

#25 楼 @mengde0077 怎么解决的分享下吧

#24 楼 @l84222780 跪求解決方案。

扫地僧 [该话题已被删除] 中提及了此贴 11月05日 22:01

—解决方式,配置问题,
weigedeMacBook-Pro:AutoTraveler_jar weige$ java -jar ~/Desktop/gitdir/AutoTraveler/out/artifacts/AutoTraveler_jar/AutoTraveler.jar android /Users/weige/Desktop/gitdir/AutoTraveler/config/android.xml
Error: Unable to access jarfile /Users/weige/Desktop/gitdir/AutoTraveler/out/artifacts/AutoTraveler_jar/AutoTraveler.jar

I am using Intellij IDEA 12.0.4 on MAC OS X 10.8.3 to create a jar file. I go to
File -> Project Structure -> Artifacts -> + -> Jar
-> From modules with dependencies
-> Selected Main Class after browsing
-> selected extract to the target jar
-> Directory for META-INF :
把默认的地址: "/Users/weige/Desktop/gitdir/AutoTraveler/src”
改为"/Users/weige/Desktop/gitdir/AutoTraveler/resources"
没有目录的,需要新建目录
-> OK -> Apply -> OK -> Build -> Build Artifacts -> Build

@mengde0077 
运行提示
2016-11-07 17:06:45 sys_log : [INFO] autoLaunch = true
2016-11-07 17:06:45 sys_log : [INFO] platformVersion = 5.1
2016-11-07 17:06:45 sys_log : [INFO] unicodeKeyboard = true
2016-11-07 17:06:45 sys_log : [INFO] udid = 0123456789ABCDEF
2016-11-07 17:06:45 sys_log : [INFO] platformName = Android
2016-11-07 17:06:45 sys_log : [INFO] resetKeyboard = true
2016-11-07 17:06:45 sys_log : [INFO] ###########################################
################################
2016-11-07 17:06:45 sys_log : [INFO] Appium Server -> http://127.0.0.1:4723/wd/h
ub
log4j:WARN No appenders could be found for logger (org.apache.http.client.protoc
ol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.IllegalArgumentException: character to be e
scaped is missing
        at java.util.regex.Matcher.appendReplacement(Unknown Source)
        at java.util.regex.Matcher.replaceAll(Unknown Source)
        at java.lang.String.replaceAll(Unknown Source)
        at pers.traveler.robot.Robot.beforeTravel(Robot.java:124)
        at pers.traveler.robot.AndroidRobot.working(AndroidRobot.java:57)
        at pers.traveler.robot.Robot.travel(Robot.java:200)
        at pers.traveler.test.Main.main(Main.java:21)

E:\自动化\AutoTraveler\AutoTraveler-master>

#30 楼 @hsqzggg 先确保编码是 utf-8,应该是你的配置问题,错误提示到行了,你到这几个类看看是什么问题
at pers.traveler.robot.Robot.beforeTravel(Robot.java:124)
at pers.traveler.robot.AndroidRobot.working(AndroidRobot.java:57)
at pers.traveler.robot.Robot.travel(Robot.java:200)
at pers.traveler.test.Main.main(Main.java:21)

#31 楼 @quqing 把 jar 移到合适的目录位置,就通过了,你代码没做路径适配啊!

#32 楼 @hsqzggg jar 包在哪里运行都可以的,指定配置路径即可,是不是你之前的配置路径不对,反过来用 jar 包路径来适应配置路径了,呵呵

新版本在哪里下。。。

同问。。新版本什么时候开放源码入口😶

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册