codecamp

Code模式

自动化测试(高级模式)简介

eoLinker是目前第一个支持在线API自动化测试的平台,eoLinker AMS提供了两种自动化测试方案:

  1. 简易模式:全UI界面,无需编写任何代码即可完成稍复杂的API测试工作
  2. 高级模式:代码界面,通过编写极少的Javascript代码,即可实现强大的API自动化测试

一般而言,自动化测试涉及以下几个方面:

  1. 自由设定API测试顺序;
  2. API之间存在数据关联,比如后面接口的请求参数会绑定前面接口的返回结果等;
  3. 支持对返回结果进行校验;
  4. 支持对数据进行处理,比如在测试登录接口时对密码进行加密等;
  5. 支持高级的代码用例,可以用代码来实现控制测试流程的目的,一般语言有js;
  6. eoLinker支持上述提到的所有功能,并且是目前全球唯一一款支持UI界面创建自动化测试的产品,用于自动化测试非常方便,并且用户体验相比于Postman等工具要好许多。

一.单例和用例

单例 是自动化测试下面的一个基本单位,通俗地讲,单例 也就是“单个API的测试条件和结果”。比如有一个用户登录接口,传递abc和123作为请求参数,然后返回”OK”作为成功的结果。

用例 则是多个 单例 的合集,一个 用例 可以包含1~无限个的 单例,并且把这些 单例 按顺序组合起来。比如测试完整的用户登录流程(注册-登录-判断登录状态-退出登录)。

注意:在高级模式中,单例 将以代码的形式集中在 用例 中,因此形式上看并不像简易模式中拥有明显的单例和用例的概念。

我们在 用例列表 页面,新增用例时选择用例类型为 高级[代码模式] 即可创建一个高级用例:

二.环境变量

和Postman一样,eoLinker也提供了环境变量的功能,帮助用户快速对测试API的环境进行切换,而不需要对API进行修改(比如开发和生产环境的参数和地址可能不同)。

不同的是,eoLinker的环境变量功能要更加强大,除了设置全局变量,eoLinker里面可以设定所有API的地址前缀、请求头部等信息。

在环境管理中创建好环境,在自动化测试的时候就可以根据不同的环境随时切换,非常方便。

三.创建用例

如果你已经在接口管理中把API信息录入完毕,那么在创建单例的时候可以直接将接口文档导入,节约绝大多数的时间。或者我们也可以手动去录入单例的信息。

其中包括:

  1. API URL(url)
  2. 请求方式(method)
  3. 请求头部(headers)
  4. 请求参数(params)
  5. 超时设置(timelimit)

和简易模式不同的是,这些信息都将以Javascript代码的方式呈现出来。但是eoLinker拥有非常简单的API模板规则,因此只需要极少的代码即可完整地描述API信息(红色部分的代码):

上图表示的API信息是:

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

执行请求后,判断结果是否等于”000000”,如果不等于,则使用eo.stop()输出错误信息并且中止测试,否则使用eo.info()输出提示信息并继续往下测试。

当所有测试均没有遇到eo.stop()以及意外终止(如no response、超时等错误)情况时,会判断为用例测试成功,否则失败。所有的测试都会在测试结束之后弹出测试报告,方便核查:


UI模式
前置用例 / Start_up
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }