手机自动化测试平台搭建----第五节执行脚本时启动录制视频

创建一个测试apk包的项目

手机自动化测试平台搭建----第五节执行脚本时启动录制视频_第1张图片

 

三、新建项目之后导入jar包、apk等

1、在项目下面创建文件夹:apps、libs,并把要测试的apk安装包及jar包导入项目,准备工作完成后整个 框架如下图所示

手机自动化测试平台搭建----第五节执行脚本时启动录制视频_第2张图片

注意:java-client和selenium-server-standalone的jar包的版本要对应,最好找齐如上截图所示的版本,要不然会版本冲突导致未知错误

四、新建一个测试Demo:QuizTest.java

复制代码

package com.test.quiz;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;

public class QuizTest {
    
    public AppiumDriver driver;
    private boolean isInstall = false;
    
    public void startRecord () throws IOException{
        Runtime rc = Runtime.getRuntime();
        rc.exec("cmd.exe /E:/Android/sdk/platform-tools adb shell screenrecord /sdcard/runCase.mp4");//录制屏幕运行视频
    }
    
    /**
     *  开始启动
     * @throws IOException
     */
    @Before
    public void setUp() throws IOException{
        // 启动appium
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "emulator-5554");//指定测试机
        capabilities.setCapability("automationName", "Appium");
        capabilities.setCapability("platformName", "Android");// 指定测试平台
        capabilities.setCapability("platformVersion", "22");//平台版本
        
        // 配置测试apk
        capabilities.setCapability("appPackage", "com.example.quizactivity");//测试的包
        capabilities.setCapability("appActivity", "com.example.quizactivity.QuizActivity");//测试的activity
        capabilities.setCapability("sessionoverride", true);//每次启动时覆盖session,否则第二次后运行会报错不能新建session
        capabilities.setCapability("unicodekeyboard", true);//设置键盘
        capabilities.setCapability("resetkeyboard", false); //设置默认键盘为appium的键盘  
        driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        
        // 安装APK,如果真机设备已经安装,则不需要重新安装
        if (isInstall){
            File classpathRoot = new File(System.getProperty("user.dir"));
            File appDir = new File(classpathRoot,"apps");
            File app = new File(appDir,"QuizActivity.apk");
            capabilities.setCapability("app", app.getAbsolutePath());
        }
        startRecord();
        
    }
    
    /**
     *  点击显示上一条
     * @throws InterruptedException 
     */
    @Test
    public void PreQuestion() throws InterruptedException{
        driver.findElementById("com.example.quizactivity:id/prev_button").click();// 点击上一个按钮
        Thread.sleep(2000); 
        driver.findElementById("com.example.quizactivity:id/next_button").click();//点击下一个按钮
        Thread.sleep(2000); 
        String tips = driver.findElementById("com.example.quizactivity:id/question_text_view").getText();
        Assert.assertEquals(tips, "The Suez Canal connects the Red Sea and the Indian Ocean.");  
        Thread.sleep(2000);  
    }
    
    
    /**
     * 结束启动
     */
    @After
    public void tearDown(){
        driver.quit();
    }

}

复制代码

其中:

1、指定测试机的获取:adb devices

2、测试包及测试的activity获取:adb shell dumpsys window | findstr mCurrentFocus

手机自动化测试平台搭建----第五节执行脚本时启动录制视频_第3张图片

3、元素ID的获取:可以利用android-sdk自带的UI Automator Viewer

UI Automator Viewer的目录地址:D:\android\sdk\tools\uiautomatorviewer.bat

双击打开uiautomatorviewer.bat,出现如下图所示页面:

手机自动化测试平台搭建----第五节执行脚本时启动录制视频_第4张图片

 

获取PrevButton:

手机自动化测试平台搭建----第五节执行脚本时启动录制视频_第5张图片

其他值也可以照样获取

 

五、执行appium

1、首先启动appium

手机自动化测试平台搭建----第五节执行脚本时启动录制视频_第6张图片

2、在eclipse运行测试项目

3、查看手机可以看到APP自动运行所编写的脚本

 

 

可以将录制的视频拷贝到电脑中来:

adb常用基本命令如下:

  • adb devices           列出你的devices
  • aapt dump badging     查看包名
  • adb logcat         查看logcat日志
  • adb logcat > 路径\文件名    将日志存储到相应路径下的文件里
  • adb logcat | find "输出日志时客户端设定的标签"   过滤打印需要的日志

  • adb kill-server         杀掉adb服务(如果设备连接出问题,可尝试)
  • adb start-server      重启adb服务
  • adb shell                进入默认device的Linux shell,可以直接执行Linux命令
  • adb shell pm list packages  列出所有包名
  • adb shell pm list packages [options]   列举出所有包含的package(如:adb shell pm list packages com.taobao.taobao)
  • adb shell screenrecord /sdcard/runCase.mp4  录制视频保存,默认3min,也可以加--time-limit 60限制时间 
  • adb shell screenrecord --time-limit 15 /sdcard/runCase.mp4 录制15s 视频保存
  • adb install jd.apk      向设备安装app
  • adb pull /sdcard/runCase.mp4 c:// 把手机中文件copy到电脑
  • adb push C://runCase.mp4 /sdcard/          把电脑中文件放到手机   

你可能感兴趣的:(手机自动化测试平台搭建----第五节执行脚本时启动录制视频)