当然还有 ubuntu 环境下的 macaca-cli 和各种驱动 等 macaca 执行环境,请参考ubuntu16.04 环境折腾 macaca 总结记
此处省略,自行度娘 谷哥.许久之前就配置好了,这次是直接拿来用的.
使用 git clone 来 down 项目在后续才是最方便的.
(如果你熟悉 maven 的 pom 和 setting 设置 也完全可以创建维护个人的 macaca java 项目 这块还在研究中) 已补充 ubuntu16.04 Eclipse 使用 Maven pom 和 settings 创建本地 macaca java 项目记
cmd@TR:~/workspace/git$ git clone https://github.com/macacajs/wd.java.git
正克隆到 'wd.java'...
remote: Counting objects: 977, done.
remote: Compressing objects: 100% (221/221), done.
remote: Total 977 (delta 174), reused 0 (delta 0), pack-reused 750
接收对象中: 100% (977/977), 294.54 KiB | 343.00 KiB/s, 完成.
处理 delta 中: 100% (691/691), 完成.
检查连接... 完成。
cmd@TR:~/workspace/git$ cd wd.java/
cmd@TR:~/workspace/git/wd.java$ ls -al
总用量 44
drwxrwxr-x 5 cmd cmd 4096 8月 23 13:55 .
drwxrwxrwx 3 cmd cmd 4096 8月 23 13:55 ..
drwxrwxr-x 4 cmd cmd 4096 8月 23 13:55 doc
drwxrwxr-x 8 cmd cmd 4096 8月 23 13:55 .git
-rw-rw-r-- 1 cmd cmd 100 8月 23 13:55 .gitignore
-rw-rw-r-- 1 cmd cmd 1100 8月 23 13:55 LICENSE
-rw-rw-r-- 1 cmd cmd 1312 8月 23 13:55 pom.xml
-rw-rw-r-- 1 cmd cmd 591 8月 23 13:55 README.md
-rw-rw-r-- 1 cmd cmd 1074 8月 23 13:55 settings.xml
drwxrwxr-x 4 cmd cmd 4096 8月 23 13:55 src
-rw-rw-r-- 1 cmd cmd 114 8月 23 13:55 .travis.yml
cmd@TR:~/workspace/git/wd.java$ git pull
Already up-to-date.
cmd@TR:~/workspace/git/wd.java$ mvn -s settings.xml clean install
日志略
会看到 [INFO] BUILD SUCCESS 说明 wd.java 项目部署成功.
然后再打开 Eclipse 导入 /home/cmd/workspace/git/wd.java/ 已存在的 Maven 项目.
参考官方示例 https://macacajs.github.io/macaca/java.html
和 https://github.com/macacajs/macaca-test-sample-java
package macaca.client;
import static org.hamcrest.Matchers.containsString;
//import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.alibaba.fastjson.JSONObject;
import macaca.client.MacacaClient;
public class SampleTest {
MacacaClient driver = new MacacaClient();
@Before
public void setUp() throws Exception {
//Logger logger = Logger.getLogger(getClass());
JSONObject porps = new JSONObject();
porps.put("autoAcceptAlerts", true);
porps.put("javascriptEnabled", true);
//porps.put("deviceName", "iPhone 6s"); //ios 需要指定设备名
porps.put("platformName", "Android"); // Android or ios
porps.put("version", ""); //系统版本 ios需要指定系统版本
//porps.put("udid", "your udid"); //ios udid唯一设备识别符
//porps.put("bundleId", "zx.ios-app-bootstrap"); //ios bundleId App应用标识符
porps.put("app", "/home/cmd/App/***.apk");
//porps.put("package", "com.***.***");//appPackage 启动包名
// porps.put("activity", ".***");//appActivity 启动类名
JSONObject desiredCapabilities = new JSONObject();
desiredCapabilities.put("desiredCapabilities", porps);
driver.initDriver(desiredCapabilities);
}
@Test
public void test_case_1() throws Exception {
System.out.println("test case #1 Login");
driver
.elementById("com.acp.aicaitencent:id/tvBottomTab4")
.click()
.sleep(5000)
.elementById("com.acp.aicaitencent:id/layoutLogin")
.click()
.sleep(5000)
.elementById("com.acp.aicaitencent:id/etUserName")
.sendKeys("******")
.sleep(5000)
.elementById("com.acp.aicaitencent:id/etPwd")
.sendKeys("********")
.sleep(5000)
.elementById("com.acp.aicaitencent:id/tvLogin")
.click()
.sleep(5000);
driver.takeScreenshot()
.saveScreenshot("/home/cmd/macaca/AndroidAcp.png");
}
@After
public void tearDown() throws Exception {
driver.quit();
}
}
当然还是要先开一终端跑 macaca server --verbose 再启动安卓模拟器。
先 cd 到~/workspace/git/wd.java 工程项目下
再 cmd@TR:~/workspace/git/wd.java$ mvn test -Dtest=macaca.client.H5Mobile
如图
其他 mvn test 命令行使用可以参考帮助 mvn test --help
https://github.com/Yinxl/bootstrap
这个例子很好 common 里 提取了一些公共 可复用部分