程序员开发实例大全宝库

网站首页 > 编程文章 正文

Jmeter调用C接口指导文档(jmeter调用本地文件)

zazugpt 2024-08-24 02:23:54 编程文章 16 ℃ 0 评论

项目背景

某系统单点登录需要http接口和C接口混合完成

接口流程如下:

1、获取应用令牌

2、获取认证信息接口(C接口)

3、数据释放接口(C接口)

4、获取用户信息

Java调用C接口实现:

通过分析,JAVA中可以使用jna方法实现C接口调用

导入jna的库





此处选择要导入的jna库的jar包

导入C接口生成的dll库文件



Jna调用C接口具体方法实现

package com.westone.utils;

import com.sun.jna.Library;

import com.sun.jna.Native;

import com.sun.jna.Pointer;

import com.sun.jna.ptr.PointerByReference;

@SuppressWarnings("unused")

public interface CDLL extends Library{

//加载dll库

public String dllname = "./lib/WstAuthClientSdk.dll";

CDLL INSTANCE = (CDLL) Native.loadLibrary(dllname, CDLL.class);

//实现dll库中接口方法

int WstAuthClientSdk(String pAuthParams, PointerByReference ppAuthResult);

int WstAuthClientSdkFree(Pointer ptr);

//获取字符串中指定位置的子字符串

public static String getValueFromKey(String strJson, String key){

if(!strJson.contains(key)) return null;


int index = strJson.indexOf(key);

int start = index + key.length()+3;

int end = strJson.length()-3;

String value = strJson.substring(start, end);


return value;

}

}

将方法实现导出jar包







Jmeter中调用

将jna的包放在jmeter的lib/ext库中,此库中的文件jmeter每次启动都会自动加载



将dll文件放在jmeter的bin目录下,路径同java方法实现中的路径



Jmeter的计划中加载java方法的jar包



Jmeter中实现java方法的调用



http请求中使用调用java方法获取的参数值





过程中遇到的问题总结

注意C接口实现的环境要求,此次实现使用的32位jdk,因此需要将所有工具都安装为jdk 32位适应的版本

Dll库放置的位置需跟java方法中保持一致,不然jmeter调用时会找不到对应的库文件

如何查看dll文件时64位还是32位

直接用记事本或者notepad++打开dll文件,很多乱码,不要头疼,在第二段中找到PE两个字母,在其后不远处会出现d or L,如是d,则证明该程序是64位,若是L,则证明该程序是32位



Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表