乐趣区

关于api:Apikit-自学日记添加测试步骤脚本步骤

脚本步骤

在流程测试用例界面,进入用例治理,点击 增加脚本[Javascript] 按钮:

进入编辑用例页面,点击 新 API 测试 新建一个 API 申请。

API 自动化测试平台为代码模式的测试用例设计了一套简略的 API 信息模板,因而只须要极少的代码即可残缺地形容 API 信息,模板中各个字段含意如下:

如下图所示即为一个残缺的 API 申请信息,示意:

申请 url:https://www.eolinker.com/
申请形式:POST
申请头部:空
申请参数:form-data 类型(默认),name=hello,password=world
超时限度:300 毫秒

从 API 文档中援用 API 作为测试步骤(API)

进入编辑用例页面,点击 从 API 文档导入,在新的页面中,抉择我的项目、分组以及须要导入的 API 文档,而后点击保留即可。API 自动化测试平台 通过这种形式将 API 文档治理与自动化测试关联起来,可能帮忙测试人员节俭大量的测试工夫:

设置测试步骤(API)的申请参数

代码模式中的申请参数在个别状况下须要联合申请头部的 Content-Type 字段来设置申请参数的类型。

在默认不设置申请头部的 Content-Type 参数的状况下,申请参数的类型为 Form-data,此时的申请参数字段 params 的值为对象类型,示意 Form-data 里的键值对,比方以下代码中,申请参数为 user_name 和 password:

var api_1={
    "url":"/user/register",
    "name":"用户注册",
    "method":"POST",
    "headers":{},
    "params":{
        "user_name":"jackliu",
        "password":eo.md5("123456")
    },    
    "timelimit":300 
};
// 发送测试并将返回后果赋值给 result_api_1
//eo.execute(api_name)是固定的办法,用于执行一次测试
var result_api_1=eo.execute(api_1);

如果须要发送 Json、XML、Raw 等类型的数据,须要设置申请头部的 Content-Type 字段,以下是发送 Json 的代码,其余参数类型的代码相似:

var json_params = "{'user_name':'jackliu','password':'"+eo.md5("123456")+"'}"
// 设置申请信息
var api_1={
    "url":"/user/register",
    "name":"用户注册",
    "method":"POST",
    "headers":{"Contet-Type":"application/json"  // 设置 Json 的申请头部},
    "params":json_params,
    "timelimit":300 
};
// 发送测试并将返回后果赋值给 result_api_1
//eo.execute(api_name)是固定的办法,用于执行一次测试
var result_api_1=eo.execute(api_1);

设置测试步骤(API)之间的数据关联

代码模式中应用变量来传递参数值,以下是应用变量 vf_code 传递参数的代码,您能够在其中额定增加对 vf_code 的解决代码:

var api_1={
    "url":"/user/login",
    "name":"用户登录",
    "method":"POST",
    "headers":{},
    "params":{
        "user_name":"jackliu",
        "password":eo.md5("123456")
    },    
    "timelimit":300 
};

var result_api_1=eo.execute(api_1);

// 获取用户登录的返回后果(Json 格局),并且赋值给 vf_code 变量
var vf_code = JSON.parse(result_api_1.response)['verify_code'];

// 编写代码对 vf_code 的变量值进行解决
...

var api_2={
    "url":"/user/check_login",
    "name":"校验登录状态",
    "method":"POST",
    "headers":{ },
    "params":{"verify_code":verify_code // 将 vf_code 变量的值传递给 verify_code},   
    "timelimit":300 
};

var result_api_2=eo.execute(api_2);

设置测试步骤(API)的返回头部(Response Header)校验规定

返回后果中,应用.header 示意返回头部。以下是获取返回头部并且判断 Content-Type 是否等于”text/html; charset=UTF-8”的代码:

var api_1={
    "url":"api.eolinker.com",
    "name":"用户登录",
    "method":"POST",
    "headers":{},
    "params":{
        "user_name":"jackliu",
        "password":eo.md5("123456")
    },    
    "timelimit":300 
};

var result_api_1=eo.execute(api_1);

// 判断申请头部的 content-type
if(result_api_1.header['content-type']=="text/html; charset=UTF-8")
{eo.info("OK!");
}

设置测试步骤(API)的返回内容(Response Body)校验规定

返回后果中,应用.response 示意返回内容。返回内容默认是字符串类型,如果返回的数据是 Json 等格局,须要编写代码进行解析。以下是获取返回内容并且判断是否等于”helloworld”的代码:

// 返回内容为字符串
var api_1={
    "url":"api.eolinker.com",
    "name":"用户登录",
    "method":"POST",
    "headers":{},
    "params":{},
    "timelimit":300
};

var result_api_1=eo.execute(api_1);

// 返回内容为字符串:helloworld
if(result_api_1.response=="helloworld")
{eo.info("OK!");
}


// 返回内容为 Json
var api_2={
    "url":"api.eolinker.com",
    "name":"用户登录",
    "method":"POST",
    "headers":{},
    "params":{
        "user_name":"jackliu",
        "password":eo.md5("123456")
    },    
    "timelimit":300 
};

var result_api_2=eo.execute(api_1);

// 返回内容为 Json:{"content":"helloworld"}
if(JSON.parse(result_api_2.response)['content']=="helloworld")
{eo.info("OK!");
}

代码模式的测试后果中蕴含的字段

除了下面提到的.header 和.response,返回后果中还蕴含了以下的内容:

以下是判断测试工夫和 HTTP 状态码的代码:

var api_1={
    "url":"api.eolinker.com",
    "name":"用户登录",
    "method":"POST",
    "headers":{},
    "params":{
        "user_name":"jackliu",
        "password":eo.md5("123456")
    },    
    "timelimit":300 
};

var result_api_1=eo.execute(api_1);

// 判断申请的工夫是否大于 100ms
if(result_api_1.time>100)
{eo.info("error!");
}

// 判断申请的状态码是否不等于 200
if(result_api_1.code!=200)
{eo.info("error!");
}
退出移动版