微服务接口测试—手把手带你搞定复杂的参数


你是否也和测试同学一样,虽然可以使用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"表示多人单节点 |
微服务接口测试—手把手带你搞定复杂的参数
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



