关闭

(下)使用 Rational Functional Tester 进行应用软件系统级自动化性能测试

发表于:2009-8-12 14:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:欧迎丰,唐雪琴    来源:IBM

使用 R ational Functional Tester 进行应用软件系统级自动化性 能测试(上)

 RFT Java Native API 的实现

  通过上述的操作,我们得到了被测软件的进程句柄并最终得到了进程的 CPU 时间和内存信息,但是,这些 API 的操作都是在 C++ 的环境下完成的,我们没有办法在 RFT 的 Java Script 中直接进行这些调用。因此我们需要把上述的操作封装成动态链接库,并通过 Java Native API 完成对动态链接库的调用,而最终在 RFT 的 Java Script 中得到进程的系统性能信息。

  Java Native Interface 允许 Java 程序调用本地用 C++ 等其它语言编写的程序或类库。我们将经过一系列的步骤来完成我们的 Java Native API。

  首先在 RFT 的 Java Script 代码 JavaNative_PerfmonWin.Java 中加上 JNI 的定义:

public native long getProcessorInfo(String processorName,String InfoType);

  编译通过生成对应的 class 文件后,在 class 文件的目录下执行:

Javah –jni JavaNative_PerfmonWin.class

  然后,会生成对应的 JavaNative_PerfmonWin.h 文件:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JavaNative_PerfmonWin */
#ifndef _Included_JavaNative_PerfmonWin
#define _Included_JavaNative_PerfmonWin
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class: JavaNative_PerfmonWin
 * Method: getProcessorCPUTime
 * Signature: (LJava/lang/String;LJava/lang/String;)J
 */
JNIEXPORT jlong JNICALL Java_JavaNative_PerfmonWin_getProcessorInfo
 (JNIEnv *, jclass, jstring, jstring);
#ifdef __cplusplus
}
#endif
#endif

  这里声明的方法传递了一个 JNIEnv 指针、一个 jobject 指针和通过 Java 方法定义的 Java 参数(软件进程的名称和需要获取的信息)。
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号