Macaca环境搭建Win+Mac(wait)+Demo

介绍

Macaca 是由阿里巴巴公司开发的一套面向用户端软件的测试解决方案。
提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。

相关链接

安装 | Win10 64

Nodejs(必选)

  1. https://npm.taobao.org/dist/ 淘宝仓库

    选择符合自身操作系统的版本进行下载

  2. 解压缩
    nodejs
  3. 配置环境变量
  4. 检验
    node -v
    npm -v
  5. cnpm(可选)

    国内node_modules管理仓库

    1
    2
    3
    4
    # 安装 -g 全局安装
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    # 检验
    cnpm -v

JDK 8(必选)

  1. 下载 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

    选择合适的系统版本下载,并安装

  2. 配置环境变量

    • 创建JAVA_HOME

  * 创建CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
 

  * 配置path
  %JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
 

  1. 检验
    java -version
    javac -version

gradle

  1. 下载&安装

  2. 配置环境变量

    • 创建GRADLE_HOME

     

  * 配置path
%GRADLE_HOME%\bin
 

  1. 检验
    gradle -v
     

android-sdk(AndroidTest)

  1. 下载&安装

     

  2. 配置环境变量

    • 创建ANDROID_HOME

     

  * 配置path
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools

![](/images/pasted-37.png)
  1. 检验
    adb --version
     

  2. 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 # yes

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)

  1. 下载
  2. 位置
    • 执行 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"); // android or ios
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 {
// driver.quit();
}
}

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>
<!-- JUnit 5 -->
<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>
  • 本文作者: Ysc Test
  • 本文链接: https://ysctest.cn/posts/8a53c32a.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 法律声明: 本博客提供的所有包括但不限于(文章和API)等服务,仅用于学习,技术分享、交流。不得用于违法犯罪、损害国家利益。非法使用者本站不承担任何法律责任,并且本站保留追究其法律责任的权力!!!