微服务接口测试—手把手带你搞定复杂的参数
你是否也和测试同学一样,虽然可以使用KDE测微服务接口,但是对不同类型参数的使用不是很熟悉?其实,微服务接口的入参不一定是string和long这两种简单的类型。
那么,对于非简单类型的入参,我们应该如何获取呢?不用担心,小编将通过几个简单的例子来帮大家快速掌握方法。
1 案例一
以WorkflowServiceHelper.withdraw(DynamicObject)为例,该接口是流程服务云微服务接口,其入参类型是DynamicObject,相较于string和long来说更为复杂。
在KDE工具中,提供了一些API以供使用,其中一个为BusinessDataServiceHelper。通过它,我们就可以得到DynamicObject类型的参数。微服务接口完成脚本插件需要以下三个步骤:
步骤一:打开所有程序包,【进入KDE编辑页面】→【帮助】→【KS API】,需要搜索BusinessDataServiceHelper。随后,寻找简单入参且返回值是“DynamicObject”的方法。如下图所示:
KDE编辑页面示例
通过上述步骤,参数就由DynamicObject变成了object和String了。
步骤二:调用loadSingle()方法,获得DynamicObject类型的对象,以下为调用代码:
var obj = BusinessDataServiceHelper.loadSingle('1234884951271301120','er_tripreqbill');
其中,obj就是需要获取的参数。
步骤三:完成脚本插件,具体代码如下所示:
require("kd.bos.servicehelper.workflow.WorkflowServiceHelper");
require("kd.bos.servicehelper.BusinessDataServiceHelper");
var plugin = new FormPlugin({
registerListener : function(e){
this.addClickListeners("kdtest_withdraw")
},
click : function(e){
var key = e.getSource().getKey();
var obj = BusinessDataServiceHelper.loadSingle('1234884951271301120','er_tripreqbill');
if (key == 'kdtest_withdraw') {
var ret = WorkflowServiceHelper.withdraw(obj);
}
},
});
注:使用任何类的方法时,都需要引入对应的类的路径。
通过上述三个步骤,一个微服务接口WorkflowServiceHelper.withdraw(DynamicObject)的脚本插件就完成了。
2 案例二
以WorkflowServiceHelper.addSign(Long,AddSignInfo)为例,该接口同样是流程服务云微服务接口。因为该接口有两种入参类型,分别是“long”和“AddSignInfo”,所以较单独的string和long来说更为复杂,其完成脚本插件需要以下四个步骤:
步骤一:查看AddSignInfo代码,可以看到该类有@KSObject和@KSMethod注解,说明该类可以在KDE脚本中正常使用。
AddSignInfo代码示例
步骤二:在KDE中直接调用该类的方法,获取到类的对象,具体代码如下:
var addSignInfo = new AddSignInfo();
步骤三:查看微服务接口说明文档,组合出需要的参数,addSignInfo参具体代码所示:
addSignInfo.setAddSingMsg(msg);
addSignInfo.setAddSignType('addsignbefore');
addSignInfo.setAllowAddSign(true);
addSignInfo.setAddSignDealType('one');
addSignInfo.setUserIds('1168745917336004608');
具体参数说明如下表所示:
参数名 | 含义 | 备注 | 是否必须 |
addSingMsg | 加签说明 | 加签说明,是个map,key值为Lang.zh_CN.name()、Lang.zh_TW.name()、Lang.en_US.name() | 是 |
addSignType | 加签方式 | String值,"addsignbefore"表示前加签,"addsignafter"表示后加签 | 是 |
allowAddSign | 允许再加签 | Boolean值,true或false | 是 |
addSignDealType | 加签处理方式 | String值中,"one"表示单人单节点加签、"anyone"表示多人单节点任意人处理、"seq"表示多人多节点依次审批、“yzj”表示多人会审 | 是 |
userIds | 加签人 | ListuserId的集合 | 是 |
addSignInfo参数说明表
步骤四:完成脚本插件。具体代码展示图如下所示:
代码可实现功能展示
具体代码如下:
require("kd.bos.servicehelper.workflow.WorkflowServiceHelper");
require('kd.bos.workflow.engine.dynprocess.AddSignInfo');
var plugin = new FormPlugin({
registerListener : function(e){
this.addClickListeners("kdtest_addsign")
},
click : function(e){
var key = e.getSource().getKey();
var taskId = this.getModel().getValue('taskid');
var userId = new ArrayList();
userId.add(toLong(this.getModel().getValue('userid')));
var msg = this.getModel().getValue('ilocalestring');
var addSignInfo = new AddSignInfo();
addSignInfo.setAddSingMsg(msg);
addSignInfo.setAddSignType('addsignafter');
addSignInfo.setAllowAddSign(true);
addSignInfo.setAddSignDealType('one');
addSignInfo.setYzjType('passByOne');
addSignInfo.setUserIds(userId);
if (key == 'kdtest_addsign') {
var ret = WorkflowServiceHelper.addSign(toLong(taskId),addSignInfo);
this.getModel().setValue('response',ret);
}
},
});
通过上述四个步骤,一个微服务接口WorkflowServiceHelper.addSign(Long,AddSignInfo)的脚本插件就完成啦。
以上就是本期的全部内容啦。看完之后,对微服务接口中那些不简单的参数,是不是觉得可以分分钟就搞定了?
#往期推荐#
更多精彩内容,“码”上了解!↓
微服务接口测试—手把手带你搞定复杂的参数
本文2024-09-23 01:12:20发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144446.html