微服务接口测试—高效动态传参

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

微服务接口测试—高效动态传参



你是否也和两位测试同学一样,每次测试微服务接口,都要修改脚本,而且还容易将脚本改错?不用担心,小编为大家找来测试大佬,用两种最简单的方法为大家答疑解惑~




1 方法一:页面直接获取

以流程服务云微服务接口:inProcess public static boolean inProcess(String businessKey)为例。


参数明细表


操作过程中,需将参数和返回值都放到表单页面上。


实现步骤

第一步,在表单页面加入两个文本框,标识分别是businesskeyresponse;同时新增一个按钮,标识为inProcess


参数及返回值设置示例


第二步,通过3个操作读取脚本中的页面参数。


1)从页面获取businesskey的值,实现代码如下所示:


var businessKey = this.getModel().getValue('businesskey');


2)执行微服务,实现代码如下所示:


var ret = WorkflowServiceHelper.inProcess(businessKey);


3)把返回值放到response中,实现代码如下所示:


1this.getModel().setValue('response',ret);


完整操作脚本如下所示:


require("kd.bos.servicehelper.workflow.WorkflowServiceHelper");
var plugin = new FormPlugin({
    registerListener : function(e){
        this.addClickListeners("kdtest_inprocess")
    },
    click : function(e){
        var key = e.getSource().getKey();
        var businessKey = this.getModel().getValue('businesskey');  
        if (key == 'kdtest_inprocess') {
                var ret = WorkflowServiceHelper.inProcess(businessKey);
                this.getModel().setValue('response',ret);
        }   
    },
});


第三步,点击“预览”按钮进行表单预览,输入businesskey的值,点击“inProcess”按钮,返回值将显示在response中。


预览按钮示例

返回效果示例


2 方法二:页面+查询数据库

部分微服务接口有很多参数,如果一条条地写到页面上会十分繁琐。这时我们可以通过传入一个简单的参数去查询数据库,从数据库获得对应的一系列参数。


以流程服务云微服务接口:getProcessWindowRecords public static List<map> getProcessWindowRecords(Long procdefId, DynamicObject billObj)为例。


参数明细表


操作过程中,DynamicObject billObj需要调用loadSingle()方法,传入businesskey和entityNumber中获取参数。那么,getProcessWindowRecords接口最终需要的参数就是procDefId、businesskey和entityNumber。


通过查询wf_task,可以找到这三个数据。接下来,只需要在表单上输入billno,对wf_task进行查询,则可以直接获取这三个参数。


查询wf_task示例


实现步骤

第一步,在表单页面加入文本框,标识为billno;同时增加按钮,标识为getprocesswindowrecords


第二步,通过2个操作获取参数。


1)查询数据库:在wf_task中通过对billno进行查询,得到businesskey、processdefinitionid和entitynumber,实现代码如下:


 var billno = this.getModel().getValue('billno');
        var resource = QueryServiceHelper.queryOne("wf_task",'businesskey,processdefinitionid,entitynumber',[new QFilter('billno','=',billno)]);
        var businesskey = resource.getString('businesskey');
        var procdefid = resource.getString('processdefinitionid');
        var entitynumber = resource.getString('entitynumber');


2)获取参数billObj:调用loadSingle()方法,实现代码如下:


var obj = BusinessDataServiceHelper.loadSingle(toLong(businesskey),entitynumber);


完整代码如下:


 

require("kd.bos.servicehelper.workflow.WorkflowServiceHelper");
 require("kd.bos.servicehelper.devportal.BizScriptServiceHelper");
 require("kd.bos.servicehelper.BusinessDataServiceHelper");
require("kd.bos.orm.query.QFilter");//筛选
 require("kd.bos.dataentity.entity.DynamicObject");//resource
 require("kd.bos.servicehelper.QueryServiceHelper");//方法的类
require("kd.bos.mvc.cache.PageCache");//缓存
var plugin = new FormPlugin({
    registerListener : function(e){
        this.addClickListeners('kdtest_getprocesswindowre','getprocesswindowrecords')},
    click : function(e){
        var key = e.getSource().getKey();
       var billno = this.getModel().getValue('billno');
        var resource = QueryServiceHelper.queryOne("wf_task",'businesskey,processdefinitionid,entitynumber',[new QFilter('billno','=',billno)]);
        var businesskey = resource.getString('businesskey');
        var procdefid = resource.getString('processdefinitionid');
        var entitynumber = resource.getString('entitynumber');
        var obj = BusinessDataServiceHelper.loadSingle(toLong(businesskey),entitynumber);
        if (key == 'getprocesswindowrecords'){
            var ret = WorkflowServiceHelper.getProcessWindowRecords(toLong(procdefid),obj);
            this.getModel().setValue('response',ret);  
        }    
    },
});


第三步,预览表单页面,输入billno,点击“getprocesswindowrecords”按钮,执行代码。


执行效果示例


3 划重点

微服务接口测试脚本复用的方法有以下两种:


第一种方法:从页面直接获取,把参数和返回值都放到表单页面上。此方法适用于入参个数较少,或者入参可以直观地被获取到;


第二种方法:页面+查询数据库获取。通过传入一个简单的参数去查询数据库,从数据库获得对应的一系列参数。此方法更适用于入参个数较多,参数获取比较复杂的情况。




#往期推荐#


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

微服务接口测试—高效动态传参

你是否也和两位测试同学一样,每次测试微服务接口,都要修改脚本,而且还容易将脚本改错?不用担心,小编为大家找来测试大佬,用两种最简单...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息