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

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

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



你是否也和测试同学一样,虽然可以使用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)的脚本插件就完成啦。




以上就是本期的全部内容啦。看完之后,对微服务接口中那些不简单的参数,是不是觉得可以分分钟就搞定了?


#往期推荐#


# 分分钟get√微服务接口测试新技能

# 一篇揭秘"苍穹OpenAPI接口测试"的好文!

好家伙,当场学会了苍穹API接口测试!

DIY搭建接口自动化测试框架 - 入门篇


更多精彩内容,“码”上了解!↓



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

你是否也和测试同学一样,虽然可以使用KDE测微服务接口,但是对不同类型参数的使用不是很熟悉?其实,微服务接口的入参不一定是string和lon...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息