当前位置: 代码网 > it编程>游戏开发>ar > metershpere实现调用自定义jar包中的方法

metershpere实现调用自定义jar包中的方法

2024年10月24日 ar 我要评论
背景在编写一些稍微复杂一点的逻辑的接口测试用例时,大家可以感觉到metershpere用起来并不方便,即使用已有的控件写出来了看起来也异常混乱,比如有多层循环逻辑再加上一些逻辑判断,场景变量,全局变量

背景

在编写一些稍微复杂一点的逻辑的接口测试用例时,大家可以感觉到metershpere用起来并不方便,即使用已有的控件写出来了看起来也异常混乱,比如有多层循环逻辑再加上一些逻辑判断,场景变量,全局变量来回变更时,保证metershpere的界面会让你看的头晕。

这时多数同学一定会选择自己定义脚本来解决。

这样所有复杂的实现逻辑都可以在jar包中实现,在beanshell脚本中调用就显得非常方便。

1. 生成jar包

ide 选择idea,网上可以下载到社区版,对于我们编jar完全够用。

新建工程时建议选择maven工程,这样后续导入依赖库和编包都会很方便。

在pom.xml中添加项目的三方依赖库

编写完代码后直接双击package即可生成jar包

import java.util.hashmap;
import java.util.linkedhashmap;
import java.util.list;
 
public class generatesignature {
    public static string getsignature1(string myjsonstring)
    {
        linkedhashmap<string, object> body = json.parseobject(myjsonstring, linkedhashmap.class, feature.orderedfield);
        jsonobject myjsonobject = new jsonobject(body);
        system.out.println(myjsonobject.tostring());
        string mystr = getsigstr1(body);
        string signature = md5util.getmd5lower(mystr);
        return signature+"_"+mytime;
 
    }
 
    public static string getsignature2(hashmap<string,object> myhashmap)
    {
        int myshutmaptime = 0;
        int mydelaytime = 0;
        list<string> mystorecodes = null;
        string mystorecode = null;
        string mysignaturecontent = null;
        integer myid = (integer) myhashmap.get("myid");
        string myreason = (string) myhashmap.get("myreason");
        int mytype = (int) myhashmap.get("mytype");
        long mytime = (long) myhashmap.get("time");
 
        string signature = md5util.getmd5lower(mysignaturecontent);
        return signature;
    }
}

说明:

1. 在工程src/main/java下面如果没有定义目录,在beanshell中直接导入类名即可

  • import generatesignature; 如果有包名目录,需要带上包名路径,如
  • import com.test.generatesignature

2. generatesignature类中提供出来的方法建议都定义成public static 形式,这样在beanshell脚本中通过类名可以直接调用 generatesignature.getsignature1("mystring")

3. 参数传入可以以消息体字符串传入,也可以以map形式传入

2. 上传jar包

项目设置==》文件管理==》添加文件 选择文件上传

最后点击查看将添加jar包开关打开

3. beanshell脚本调用代码

如下:

import java.util.hashmap;
import generagtesignature;
// 参数为字符串
string mybody = "{\"username\":\"xxx\",\"orderid\":\"1723333333\"}";
mysig1 = generagtesignature.getsignature1(mybody);
log.info("mysig1: " + mysig1);
 
//参数为map
map map = new hashmap();
map.put("myid", null);
map.put("myreason", null);
map.put("mytype", 1);
map.put("time", 0l);
mysig2 = generagtesignature.getsignature2(map1);
log.info("mysig2: " + mysig2);

说明:

1. 脚本中演示了两种参数方式调用,一种直接传消息体字符串,这个字符串需要经过压缩转义

大家可以直接到网上查找json字符串压缩转义网站进行处理,如:

2. 如果已map形式传入,需要注意map中字段类型,比如如果是long行,传入值需要写成 0l 形式

3. 声明为map形式可以直接这样写 map map = new hashmap(); 不需要带泛型<>, 如果带了beanshell可能会不支持

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com