Appuim项目实战---录制视频
背景:在app测试中,很多场景当时出现,后期无法出现,如果这个时候就通过录制视频的方式记录那么问题就很快解决了,录制视频的简单命令:adb shell screenrecord --time-limit 10 /sdcard/demo.mp4 默认录制10分钟就结束,注意我录制视频是会使用ip,因为在框架中断掉手机也需要使用到ip, 默认录制视频使用的屏幕都很大,我们可以换个小的屏幕,具体录制视频adb参数可以看这篇博客http://blog.csdn.net/wirelessqa/article/details/22725581
在我们项目中,我们实际需要在方法开始前执行录制视频,在监听成功或者失败后,在结束掉录制视频,而关键在于,结束是把录制视频的进程给杀掉,在启动时就记录了这个进程,然后就是把文件pull到本地,运行的类都不变化,就增加一个监听方法,以下是主要实现思路
package until;
import java.io.IOException;
public class publicmethod {
/**
*
* @测试点: 开始录制视频
@param @param ip
@param @param name
@param @return
* @备注: Process
* @author zhangjun
* @date 2017年9月13日
@修改说明
*/
public Process startRecordVideo(String ip,String name){
System.out.println("开始录制视频");
String runadb="adb -s "+ip+" shell screenrecord /sdcard/"+name+".mp4";
System.out.println("执行的命令:"+runadb);
Process runprocess = null;
try {
runprocess = Runtime.getRuntime().exec(runadb);
} catch (IOException e) {
e.printStackTrace();
}
return runprocess;
}
/**
*
* @测试点: 结束视频录制,通过杀掉录制视频的进程,然后把视频数据复制到另外一个文件中
@param process 传入的进程
@param path 视频录制的位置
@param ip 传入的ip
* @备注: void
* @author zhangjun
* @date 2017年9月13日
@修改说明
*/
//
public void stopRecordVideo(Process process, String path, String ip) {
process.destroy(); // 结算掉进程
// 移动视频地址
String moveVideo = "adb -s " + ip + " pull " + path + "" + " D:\\test";
System.out.println("执行的命令:" + moveVideo);
try {
Runtime.getRuntime().exec(moveVideo);// 移动数据内容
System.out.println("移动视频成功,请在d盘test下查看");
} catch (IOException e) {
e.printStackTrace();
}
}
}
更改监听器内容,
package until;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class TestngListener extends TestListenerAdapter {
boolean Recordvideo=false;
publicmethod pubmethod=new publicmethod();
Process getprocess;
String ip="10.37.2.151:5555";
@Override
public void onTestStart(ITestResult result) {
super.onTestStart(result);
logTest.logInfo("启动我是onTestStart,我是testng的测试方法");
String name=result.getName();
logTest.logInfo("获取的方法名"+name);
getprocess=pubmethod.startRecordVideo(ip,name);
}
@Override
public void onStart(ITestContext testContext) {
super.onStart(testContext);
logTest.logInfo("启动我是onstart,所有初始化都在我这里做");
}
@Override
public void onTestFailure(ITestResult tr) {
super.onTestFailure(tr);
logTest.logInfo("我是onTestFailure,代表我们的其他操作失败了");
//结束视频
pubmethod.stopRecordVideo(getprocess, "sdcard/"+tr.getName()+".mp4",ip);
}
@Override
public void onTestSuccess(ITestResult tr) {
super.onTestSuccess(tr);
//结束视频
pubmethod.stopRecordVideo(getprocess, "sdcard/"+tr.getName()+".mp4",ip);
}
@Override
public void onTestSkipped(ITestResult tr) {
super.onTestSkipped(tr);
}
}


|
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |

浙公网安备 33010602011771号