Monkey可视化工具开发

在用monkey做android压力测试时,一般都会选择直接运行monkey命令的形式,由于重复性较强,我就写了个monkey可视化运行的工具,monkey参数可自行调整。下面先附上效果图:


以下为代码:

1.cmd命令执行工具类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class CmdUtils {
    List<String>resultList=new ArrayList<String>();
    public List<String> excuteCmd(String command){
        //String command="adb devices";
        String line = null;
        StringBuilder sb = new StringBuilder();
        Runtime runtime = Runtime.getRuntime();
        try {
            Process process = runtime.exec(command);
            BufferedReader  bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            while ((line = bufferedReader.readLine()) != null) {
                resultList.add(line);
            
            }
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        return resultList;
        
    }


}

2.获取连接设备工具类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class AndroidDevicesInfo {
    List<String>devicesList=new ArrayList<String>();
    public List<String> getAndroidDevicesInfo(){
        String command="adb devices";
        String line = null;
        StringBuilder sb = new StringBuilder();
        Runtime runtime = Runtime.getRuntime();
        try {
            Process process = runtime.exec(command);
            BufferedReader  bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            while ((line = bufferedReader.readLine()) != null) {
                if(line.contains("device")){
                    if(!line.contains("devices")){
                        String deviceId=line.substring(0, line.indexOf("device"));
                        devicesList.add(deviceId);
                    }
                
                }
            
            }
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        return devicesList;
        
    }

}
3.加载指定设备的应用包集合
package MonkeyTool;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class AndroidPackageInfo {
    List<String>packageList=new ArrayList<String>();
    
    //获取指定设备下的包集合
    public List<String> getAndroidPackageInfo(String deviceId){
        String command="adb -s "+deviceId+" shell pm list packages";
        String line = null;
        StringBuilder sb = new StringBuilder();
        Runtime runtime = Runtime.getRuntime();
        try {
            Process process = runtime.exec(command);
            BufferedReader  bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            while ((line = bufferedReader.readLine()) != null) {
                if(line.contains("package")){
                    //截取包字符串放入list中
                    String packageItem=line.substring(line.indexOf("package")+8,line.length());
                    //String packageItem=line;
                    packageList.add(packageItem);
                }
            }
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        return packageList;
        
    }

}
4.加载设备线程
package MonkeyTool;


import java.util.List;


import javax.swing.JComboBox;


//加载设备任务
public class DevicesThread extends Thread{
    AndroidDevicesInfo androidDevicesInfo;
    
    Object obj;
    
    String[] s;
    
    JComboBox devicesComBox;
    
    
    List<String> list;
    
    String devicesId;
    
    

    public  DevicesThread(JComboBox devicesComBox) {
        // TODO Auto-generated constructor stub
        this.devicesComBox=devicesComBox;
        //System.out.println("aa");
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        super.run();
        // TODO Auto-generated method stub
        devicesId=(String) devicesComBox.getSelectedItem();
        System.out.println(devicesId);
        
        androidDevicesInfo=new AndroidDevicesInfo();
        list=androidDevicesInfo.getAndroidDevicesInfo();
        devicesComBox.removeAllItems();
        
        if(list.size()==0){
            devicesComBox.addItem("无设备连接");
        }
        else{
            for (String item : list) {
                System.out.println(item);
                devicesComBox.addItem(item);
            }
        }
        
    }
    }
package MonkeyTool;


import java.util.List;

import javax.swing.JComboBox;

//加载包名任务

public class PackageThread extends Thread {
    AndroidDevicesInfo androidDevicesInfo;
    
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值