在日常测试中,按钮的连续点击可能会造成应用的奔溃,或者重复提交请求,对此我研究了下如何实现按钮的快速连续点击
思路如下:多线程实现连点并发的效果,每个线程执行adb shell input tap 命令模拟点击
代码如下:
1.cmd命令执行工具类
package utils;
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.主类代码
package utils;
public class test002 {
CmdUtils cmdUtils=new CmdUtils();
public test002(){
//10个线程执行点击,模拟的点击线程不要超过100,否则对手机会造成损害
for(int i=0;i<10;i++){
new AA().start();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new test002();
}
//模拟点击线程
class AA extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
cmdUtils.excuteCmd("adb shell input tap 250 700");
}
}
}
网友评论