接口测试平台:支持函数助手

Posted 软件测试君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试平台:支持函数助手相关的知识,希望对你有一定的参考价值。


接口测试平台:支持函数助手

接口测试平台:支持函数助手
因为接口的需求,需要支持类似于Jmeter中函数助手的功能。
以以下两个函数进行举例:
  • Random

    接口测试平台:支持函数助手
    Random
  • time

    接口测试平台:支持函数助手
    time
其实处理方式很简单,因为我们原本对 ${KEY} 类型的字段,有一个getVariable函数的处理,详情可参考接口测试平台: 接口执行顺序与依赖。 我们只需要对 ${KEY} 中的KEY的字符做解析,如果key以"__"开头,则调用函数助手。
接口测试平台:支持函数助手

下面只以random和time两个函数为例,讲解functionAssistant。

 
   
   
 
private  static  final String RANDOM =  "__Random";
private  static  final String TIME =  "__time";

/** 函数助手 */
private static String functionAssistant(String key){

     /**
     * 入参:最小值,最大值,变量名
     * __Random(1,99,INT)   =>   从1~99的数字,保存变量为 INT
     */

     if (key.startsWith(RANDOM)){
        String parameters = key.replace(RANDOM +  "(", "").replace( ")", "");
        String[] paramList = parameters.split( ",");
         // 格式不对,返回空string
         if (paramList.length !=  3 && paramList.length !=  2){
             return key;
        }
        Long min = Long.valueOf(paramList[ 0]);
        Long max = Long.valueOf(paramList[ 1]);
        String value = String.valueOf(( long) (min + Math.random()*(max - min + 1)));
         if (paramList.length ==  3){
            ApiTestConfig.globalVariableMap.put(paramList[ 2], value);
        }
         return value;
    }

     /**
     * 入参:时间格式,变量名
     * __time(,)  获取当前时间毫秒
     * __time(/1000,)  获取当前时间秒
     * __time(yyyy-MM-dd,)  获取yyyy-MM-dd格式时间
     */

     if (key.startsWith(TIME)){
        String parameters = key.replace(TIME +  "(", "").replace( ")", "");
        String[] paramList = parameters.split( ",");
        Long now = System.currentTimeMillis();
         if (paramList.length ==  0){
             return String.valueOf(now);
        }
         if (paramList[ 0].isEmpty() && !paramList[ 1].isEmpty()){
             // __time(,Var)
            ApiTestConfig.globalVariableMap.put(paramList[ 1], String.valueOf(now));
        }
         if (paramList[ 0].equals( "/1000")){
            String value = String.valueOf(now /  1000);
             // __time(/1000,Var)或 __time(/1000,)
             if (paramList.length ==  2){
                ApiTestConfig.globalVariableMap.put(paramList[ 1], value);
            }
             return value;
        }
         // __time(yyyy-MM-dd,)或__time(yyyy-MM-dd,Var),包含其他各种日期格式
        SimpleDateFormat sdf =  new SimpleDateFormat(paramList[ 0]);
        String value = sdf.format( new Date(now));
         if (paramList.length ==  2){
            ApiTestConfig.globalVariableMap.put(paramList[ 1], value);
        }
         return value;

    }
     return key;
}
更多函数,可直接在functionAssistant内进行拓展。

接口测试平台:支持函数助手


 -  End  -


- 软件测试君 -


我们只研究那些

你感兴趣的技术


喜欢我们就长按下方图片扫码关注吧



· 猜你喜欢的文章 ·




作者@简单随风

编辑@糖小幽

图片@来源于网络

商务合作请联系微信:sofeicoffee



以上是关于接口测试平台:支持函数助手的主要内容,如果未能解决你的问题,请参考以下文章

码农的好助手:版本管理工具git的使用

我的手机管家(12) 网络助手 逻辑代码

Jmeter完成接口项目参数化测试(十七)

接口测试平台:场景执行支持定时构建

支持案例自动生成功能的接口自动化测试平台

Codeigniter 助手重复 HTML 代码片段