`
duoluohua
  • 浏览: 14006 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

selenium的WindowsUtils类

 
阅读更多

private static final int CPUTIME = 500;
private static final int PERCENT = 100;
private static final int FAULTLENGTH = 10;


public static void main(String[] args) {
WindowsUtils wu=new WindowsUtils();
System.out.println(wu.findReg());
System.out.println(wu.findTaskKill());
System.out.println(wu.findWMIC());
System.out.println(wu.getProgramFilesPath());

String cmd="cmd /c taskkill /pid 1400 /t";
try {
Process p=Runtime.getRuntime().exec(cmd);
System.out.println(getCpuRatioForWindows());
System.out.println(getMemery());
System.out.println(getDisk());

} catch (IOException e) {
e.printStackTrace();
}
}


public static String getMemery(){
OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
// 总的物理内存+虚拟内存
long totalvirtualMemory = osmxb.getTotalSwapSpaceSize();
// 剩余的物理内存
long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize();
Double compare=(1-freePhysicalMemorySize*1.0/totalvirtualMemory)*100;
String str="内存已使用:"+compare.intValue()+"%";
return str;
}
//获取文件系统使用率
public static List<String> getDisk() {
// 操作系统
List<String> list=new ArrayList<String>();
for (char c = 'A'; c <= 'Z'; c++) {
String dirName = c + ":/";
File win = new File(dirName);
if(win.exists()){
long total=win.getTotalSpace();
long free=win.getFreeSpace();
Double compare=(1-free*1.0/total)*100;
String str=c+":盘 已使用 "+compare.intValue()+"%";
list.add(str);
}
}
return list;
}


//获得cpu使用率
public static String getCpuRatioForWindows() {
try {
String procCmd = System.getenv("windir") + "//system32//wbem//wmic.exe process get Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount";
// 取进程信息
long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd));
Thread.sleep(CPUTIME);
long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd));
if (c0 != null && c1 != null) {
long idletime = c1[0] - c0[0];
long busytime = c1[1] - c0[1];
return "CPU使用率:"+Double.valueOf(PERCENT * (busytime)*1.0 / (busytime + idletime)).intValue()+"%";
} else {
return "CPU使用率:"+0+"%";
}
} catch (Exception ex) {
ex.printStackTrace();
return "CPU使用率:"+0+"%";
}
}


//读取cpu相关信息
private static long[] readCpu(final Process proc) {
long[] retn = new long[2];
try {
proc.getOutputStream().close();
InputStreamReader ir = new InputStreamReader(proc.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line = input.readLine();
if (line == null || line.length() < FAULTLENGTH) {
return null;
}
int capidx = line.indexOf("Caption");
int cmdidx = line.indexOf("CommandLine");
int rocidx = line.indexOf("ReadOperationCount");
int umtidx = line.indexOf("UserModeTime");
int kmtidx = line.indexOf("KernelModeTime");
int wocidx = line.indexOf("WriteOperationCount");
long idletime = 0;
long kneltime = 0;
long usertime = 0;
while ((line = input.readLine()) != null) {
if (line.length() < wocidx) {
continue;
}
// 字段出现顺序:Caption,CommandLine,KernelModeTime,ReadOperationCount,
// ThreadCount,UserModeTime,WriteOperation
String caption =substring(line, capidx, cmdidx - 1).trim();
String cmd = substring(line, cmdidx, kmtidx - 1).trim();
if (cmd.indexOf("wmic.exe") >= 0) {
continue;
}
String s1 = substring(line, kmtidx, rocidx - 1).trim();
String s2 = substring(line, umtidx, wocidx - 1).trim();
if (caption.equals("System Idle Process") || caption.equals("System")) {
if (s1.length() > 0)
idletime += Long.valueOf(s1).longValue();
if (s2.length() > 0)
idletime += Long.valueOf(s2).longValue();
continue;
}
if (s1.length() > 0)
kneltime += Long.valueOf(s1).longValue();
if (s2.length() > 0)
usertime += Long.valueOf(s2).longValue();
}
retn[0] = idletime;
retn[1] = kneltime + usertime;
return retn;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
proc.getInputStream().close();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}


/**
* 由于String.subString对汉字处理存在问题(把一个汉字视为一个字节),因此在 包含汉字的字符串时存在隐患,现调整如下:
* @param src 要截取的字符串
* @param start_idx 开始坐标(包括该坐标)
* @param end_idx 截止坐标(包括该坐标)
* @return
*/
private static String substring(String src, int start_idx, int end_idx) {
byte[] b = src.getBytes();
String tgt = "";
for (int i = start_idx; i <= end_idx; i++) {
tgt += (char) b[i];
}
return tgt;
}

分享到:
评论

相关推荐

    python selenium page 类封装

    python selenium page 类封装

    selenium selenium selenium selenium selenium selenium selenium selenium

    selenium selenium selenium selenium selenium selenium selenium selenium selenium selenium selenium selenium selenium selenium

    selenium-selenium-4.5.0.zip源码

    Selenium 是一个强大的开源自动化测试框架,用于网页应用。它支持多种编程语言,如 Java、Python、C#、Ruby 等,使测试工程师能够编写脚本来模拟用户在浏览器中的各种交互行为。Selenium 4.5.0 版本是该框架的一个...

    selenium python API分类总结

    selenium python API分类总结.pdf

    Selenium

    - 创建一个 Java 类继承自 `TestCase`,并设置必要的环境变量。 - 初始化 `Selenium` 对象,例如: ```java public class TestPage extends TestCase { private Selenium selenium; protected void setUp() ...

    selenium-java-4.0.0-alpha-6_javaselenium_

    标题 "selenium-java-4.0.0-alpha-6_javaselenium_" 指的是 Selenium 的一个 Java 版本的软件包,具体是 4.0.0 的第六个 Alpha 版本。Selenium 是一个广泛使用的自动化测试工具,主要用于 web 应用程序的测试。它...

    selenium---详细讲解

    通过使用`Wait`类、`waitForCondition`方法以及针对特定框架的选择器和API,Selenium为测试工程师提供了一整套工具,以应对各种Web应用的自动化测试需求。无论是初学者还是经验丰富的测试人员,都能从Selenium提供的...

    Selenium-Python中文手册

    【Selenium-Python 中文手册】是一份详细的文档,它为使用Python进行Selenium测试提供了指导。Selenium是一个强大的Web自动化测试工具,Python版本的Selenium绑定提供了简单易用的API,使得用户能够轻松地编写功能性...

    selenium-server-standalone和Selenium-java的jar包

    在IT行业中,Selenium是一个广泛使用的自动化测试框架,主要用于Web应用程序的测试。它提供了一组强大的API,使得开发者能够用多种编程语言(如Java、Python、C#等)编写自动化测试脚本。在这个主题中,我们将深入...

    Selenium_v2.5

    Selenium 是一个强大的开源自动化测试框架,用于网页应用。它支持多种编程语言,如Java、Python、C#、Ruby等,使得测试工程师可以编写可跨浏览器执行的测试脚本。Selenium_v2.5是该框架的一个特定版本,它带来了许多...

    selenium浏览器驱动下载

    Selenium 是一个强大的自动化测试工具,它允许程序员模拟真实用户在浏览器中的操作,进行Web应用程序的测试。在Selenium框架中,浏览器驱动是关键组成部分,它充当了Selenium与特定浏览器之间的桥梁。本文将深入探讨...

    Selenium rc+selenium_java

    `selenium-java-2.42.2.jar`是这个库的特定版本,包含所有必要的类和方法,用于创建、运行和管理Selenium测试。例如,`WebDriver`接口是核心部分,它代表了浏览器实例,可以用来操作页面元素;`WebElement`接口则...

    selenium 依赖包一次到位

    【Selenium】是一个强大的自动化测试工具,主要用于模拟真实用户在Web浏览器上的操作。它支持多种浏览器,如Chrome、Firefox、IE等,通过编程接口(API)实现网页元素的交互,如点击、输入、导航等。Selenium的核心...

    selenium Java版本 4.1.2

    Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。在Java版本4.1.2中,Selenium提供了一套完整的API,使得开发者能够用Java编写自动化测试脚本,进行功能性和回归性测试。这个版本是Selenium的...

    seleniumRC

    1. 创建测试脚本:使用选定的编程语言,如Java,创建一个测试类,调用Selenium API来模拟用户操作。 2. 选择浏览器:Selenium RC支持多种浏览器,包括Firefox、Chrome、IE等。通过设置`start`方法的参数,指定测试用...

    selenium-server-standalone-2.40

    这是Selenium Java客户端库的二进制版本,包含了编写Selenium测试脚本所需的类和接口。Java开发者可以将这个JAR添加到他们的项目类路径中,以便使用Selenium提供的API来控制浏览器。 在使用这些文件时,开发人员...

    selenium-4.8.3.tar.gz

    《Selenium 4.8.3:Web自动化测试的强大工具》 Selenium 是一款广泛使用的开源自动化测试框架,用于测试Web应用程序。Selenium 4.8.3版本的发布,为用户提供了最新的功能和改进,进一步提升了自动化测试的效率和...

    selenium-java 3.7.1.jar

    1. **安装和配置**:确保已正确安装Java环境,并将Selenium JAR添加到项目的类路径中。 2. **选择合适的WebDriver**:根据你要测试的浏览器,下载并配置相应的WebDriver。 3. **编写测试脚本**:使用Java编程,创建...

    selenium及依赖jar包(java)

    在Selenium中,CGLIB可能用于创建动态的类实例,以模拟对象行为。 这些jar文件共同构建了Selenium在Java环境中的运行环境,使开发者能够编写自动化测试脚本,模拟用户在浏览器上的各种操作,进行功能验证、性能测试...

Global site tag (gtag.js) - Google Analytics