介绍
Macaca 是由阿里巴巴公司开发的一套面向用户端软件的测试解决方案。
提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。
相关链接
安装 | Win10 64
Nodejs(必选)
- https://npm.taobao.org/dist/ 淘宝仓库
选择符合自身操作系统的版本进行下载
- 解压缩
- 配置环境变量
- 检验
node -v
npm -v
- cnpm(可选)
国内node_modules
管理仓库
1 2 3 4
| # 安装 -g 全局安装 npm install -g cnpm --registry=https://registry.npm.taobao.org # 检验 cnpm -v
|
JDK 8(必选)
下载 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
选择合适的系统版本下载,并安装
配置环境变量
* 创建CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
* 配置path
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
检验
java -version
javac -version
gradle
下载&安装
配置环境变量
* 配置path
%GRADLE_HOME%\bin
- 检验
gradle -v
android-sdk(AndroidTest)
下载&安装
配置环境变量
* 配置path
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
![](/images/pasted-37.png)
检验
adb --version
SDK Manager(升级)
下载不同版本sdk,可以配置国内代理
Macaca(必选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| # macaca-cli cnpm i macaca-cli -g
# macaca-chrome cnpm i macaca-chrome -g
# android cnpm i macaca-android -g (Web 可不装)
# ios cnpm i macaca-ios -g (Web 可不装)
# macaca-reporter cnpm i macaca-reporter -g
# app-inspector 启用 app-inspector -u 设备id (Web 可不装) cnpm i app-inspector -g
# uirecorder 三端录制 (选择安装) cnpm i uirecorder -g
# sdkmanager --licenses (android 需要执行) $ANDROID_HOME/tools/bin/sdkmanager --update $ANDROID_HOME/tools/bin/sdkmanager --licenses
|
1 2 3 4 5 6 7 8 9 10 11 12
| # 检查macaca,如果有错误选项,自行 百度\Gogle 或email我解决 macaca doctor
# 启动服务 macaca server
# 启动检查器 app-inspector -u 设备id
# 启动录制器 uirecorder start --mobile
|
ChromeDriver(WebTest)
- 下载
- 位置
- 执行
macaca doctor
获取chrome 位置
* 替换chromedriver
> 删除原来的 chromedriver2.45.exe, 并将新下载的替换并重新命名为 chromedriver2.45.exe
![](/images/pasted-40.png)
安装 | Mac 10.14
待更新
WebTestDemo
junit + macaca
H5SampleTest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| package client;
import com.alibaba.fastjson.JSONObject; import macaca.client.MacacaClient; import org.junit.jupiter.api.*;
public class H5SampleTest { MacacaClient driver = new MacacaClient();
@BeforeEach public void setUp() throws Exception {
JSONObject porps = new JSONObject(); porps.put("autoAcceptAlerts", true); porps.put("browserName", "Chrome"); porps.put("platformName", "desktop"); porps.put("javascriptEnabled", true); porps.put("platform", "ANY"); JSONObject desiredCapabilities = new JSONObject(); desiredCapabilities.put("desiredCapabilities", porps); driver.initDriver(desiredCapabilities) .maximize(); }
@Test public void testCaseOne() throws Exception {
System.out.println("------------#1 h5 web test-------------------");
driver.get("http://www.baidu.com"); String source = driver.title(); Assertions.assertEquals(source,"百度一下,你就知道"); driver.elementById("kw").sendKeys("macaca"); driver.elementById("su").click(); driver.sleep(3000); driver.saveScreenshot("1.png"); }
@AfterEach public void tearDown() throws Exception {
} }
|
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <dependencies> <dependency> <groupId>macaca.webdriver.client</groupId> <artifactId>macacaclient</artifactId> <version>2.0.24</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.6.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <version>5.6.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.6.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>1.2</version> </dependency> </dependencies>
|