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


你是否也和两位测试同学一样,每次测试微服务接口,都要修改脚本,而且还容易将脚本改错?不用担心,小编为大家找来测试大佬,用两种最简单的方法为大家答疑解惑~
1 方法一:页面直接获取
以流程服务云微服务接口:inProcess public static boolean inProcess(String businessKey)为例。

参数明细表
操作过程中,需将参数和返回值都放到表单页面上。
实现步骤
第一步,在表单页面加入两个文本框,标识分别是businesskey和response;同时新增一个按钮,标识为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.devpor微服务接口测试—高效动态传参
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



