脚本步骤
在流程测试用例界面,进入用例治理,点击 增加脚本[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-typeif(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);//返回内容为字符串:helloworldif(result_api_1.response=="helloworld"){ eo.info("OK!");}//返回内容为Jsonvar 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);//判断申请的工夫是否大于100msif(result_api_1.time>100){ eo.info("error!");}//判断申请的状态码是否不等于200if(result_api_1.code!=200){ eo.info("error!");}