博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试常用脚本
阅读量:5882 次
发布时间:2019-06-19

本文共 6208 字,大约阅读时间需要 20 分钟。

1.截图并保存到本地

package scriptall;import java.io.IOException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.swing.plaf.SliderUI;public class screenshot {        public static void getpictrue(String str1) throws IOException    {                   Runtime r=Runtime.getRuntime();        r.exec("cmd /c adb shell screencap -p /sdcard/"+str1+".png");    }    public static String picnametime()    {           Date date=new Date();        DateFormat format=new SimpleDateFormat("yy/MM/dd HH:mm:ss");        String time=format.format(date);        String time2=filt(time);        return time2;                    }    public static String filt(String str)    {        Pattern p=Pattern.compile("[`~!@#$%^&*()+=|{}':;',//[//].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]");        Matcher m=p.matcher(str);        return m.replaceAll("").replace(" ", "").trim();    }    public static void main(String[] args) throws Exception    {           String picname;        picname=picnametime();        getpictrue(picname);    }    }

解析:1)调用系统命令时一定要加cmd/c 

        r.exec("cmd /c adb shell screencap -p /sdcard/"+str1+".png");

        2)获取系统时间

        Date date=new Date();

        DateFormat format=new SimpleDateFormat("yy/MM/dd HH:mm:ss");

        String time=format.format(date);

       3)过滤字符串

       Pattern p=Pattern.compile("[`~!@#$%^&*()+=|{}':;',//[//].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]");

      Matcher m=p.matcher(str);

       return m.replaceAll("").replace(" ", "").trim();

 

2、录制视频

package scriptall;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;public class recordvideo {    public static void record(int time,String videoname) throws IOException, Exception    {        Runtime r=Runtime.getRuntime();        Process p2=r.exec("cmd /c adb shell getprop ro.build.version.sdk");        InputStreamReader in2=new InputStreamReader(p2.getInputStream());        BufferedReader br2=new BufferedReader(in2);        String str2;        str2=br2.readLine();        if(Integer.parseInt(str2)<19)            {            System.out.print("需要Android4.4及4.4以上版本才能录制视频哦");            }        else{        Process p=r.exec("cmd /c adb shell screenrecord --time-limit "+time+" /sdcard/"+videoname+".mp4");        InputStreamReader in=new InputStreamReader(p.getInputStream());        BufferedReader br=new BufferedReader(in);        String str;        while((str=br.readLine())!=null)        {               Thread.sleep(1000);        }        System.out.println("已录制完成!");        }    }    public static void main(String[] args) throws Exception    {           Scanner sc=new Scanner(System.in);        String str=null;        System.out.println("please input the video time:");        str=sc.nextLine();        int time=Integer.parseInt(str);                Scanner sc2=new Scanner(System.in);        String str2=null;        System.out.println("please input the video name:");        str2=sc2.nextLine();        record(time,str2);        }    }

解析:1)adb shell getprop ro.build.version.sdk可以获取sdk版本,如19的话就是低于android4.4的

         2)获取命令行输入

       Scanner sc2=new Scanner(System.in);

        String str2=null;
        System.out.println("please input the video name:");
        str2=sc2.nextLine();

 

3.自己也写了个跑monkey的脚本,用白名单的方式,测试时只要输入要测试包的包名,包名间用空格隔开。另外每跑一次种子都是随机的。

 

package scriptall;import java.awt.List;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MonkeyLog {    private static final String Logname = null;    //运行monkey并获取LOG    public static void monkeyrun(String logname) throws IOException    {                   Runtime r=Runtime.getRuntime();        r.exec("cmd /c md d:\\"+logname);        for(int i=0;i<500;i++)        {               System.out.println("第"+i+"次测试。。。 ");            int seed=(int)(Math.random()*100);            r.exec("cmd /c adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt --throttle 300 -s "+seed+" -v -v -v 1000 >d:\\"+logname+"\\Monkey.txt");            r.exec("cmd /c adb pull /data/anr d:\\"+logname);            r.exec("cmd /c adb pull /sdcard/mtklog d:\\"+logname);            r.exec("cmd /c adb pull /data/tombstones d:\\"+logname);        }            }    //获取Log文件夹的名字,以时间命名    public static String logname()    {        Date date=new Date();        DateFormat dateformat=new SimpleDateFormat("yy/MM/dd HH:mm:ss");        String time=dateformat.format(date);        String time2=filt(time);        return "Log"+time2;            }    //过滤掉特殊字符串    public static String filt(String str)    {        Pattern p=Pattern.compile("[`~!@#$%^&*()+=|{}':;',//[//].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]");        Matcher m=p.matcher(str);        return m.replaceAll("").replace(" ", "").trim();    }    //把用户输入的包名写入D盘中的whitelist.txt文件中,并把它push到data/local/tmp目录下    public static void getmonkeypsg(ArrayList list) throws IOException    {        File f=new File("D:\\whitelist.txt");//注意符号        if(!f.exists())        {            f.createNewFile();        }        FileWriter fw=new FileWriter(f);        BufferedWriter bw = new BufferedWriter(fw);        Iterator it=list.iterator();        while(it.hasNext())        {               String str=it.next().toString();            bw.write(str);            bw.write("\n");        }        bw.close();                Runtime r=Runtime.getRuntime();        r.exec("cmd /c adb push D:\\whitelist.txt /data/local/tmp/");            }    public static void main(String[] args) throws IOException    {           ArrayList
list=new ArrayList
(); //获取命令行的输入 Scanner s=new Scanner(System.in); System.out.println("请输入要测试的包名,空格隔开:"); String str; str=s.nextLine(); String[] strlist=str.split(" "); for(int i=0;i

 

知识点:1)

 

转载于:https://www.cnblogs.com/penghong2014/p/4973770.html

你可能感兴趣的文章
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
敏捷现状10周年调查
查看>>
GitLab揭示DevOps价值和挑战的新调查研究
查看>>
Netflix:当你按下“播放”的时候发生了什么?
查看>>
他们10+年的管理经验或许正是你突破瓶颈的关键
查看>>
微软Azure容器服务要关停,你想好怎么迁移了吗?
查看>>
IDC报告:欧洲区块链支出8亿美元,排在首位
查看>>
Linux 4.1内核热补丁成功实践
查看>>
使用Prometheus和Grafana实现SLO
查看>>
Netty和RPC框架线程模型分析
查看>>
Java枚举增强,提供更强的类型支持
查看>>
Effective C++ 3.资源管理
查看>>
有赞透明多级缓存解决方案(TMC)设计思路
查看>>
Kotlin成为正式的Android编程语言
查看>>
在生产环境中安全地运行Docker容器
查看>>
javascript之代理模式
查看>>
微信小程序富文本解析wxParse Alpha0.1-支持HTML及markdown解析
查看>>
【leetcode】38. Count and Say 数字转换
查看>>
Subsets 系列 Leetcode解题记录
查看>>
Kubernetes 落地案例|在线课程平台 Descomplica 使用 Kubernetes 5 个月的体验
查看>>