V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vocalman
V2EX  ›  程序员

无需编写代码,基于 API 开发管理工具 eoLinker 完成 API 测试流程业务

  •  
  •   vocalman · 2018-09-14 17:18:57 +08:00 · 919 次点击
    这是一个创建于 2043 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引言

    作为开发人员,有时需要协助市场部门进行开发,比如在市场推广中,经常通过给用户赠送优惠券来提高复购率。这篇文章,将介绍如何使用接口管理工具 eoLinker 的自动化测试 [UI 模式] 构建此业务逻辑。

    关键词

    市场推广、定时任务、数据关联

    接下来,我们以给用户赠送优惠券为例进行流程的搭建。搭建完整个流程后,你会发现不再需要编写复杂的代码了,只需简单几步就能完成。

    目录

    1、流程设计 2、流程调试 3、定时任务 4、使用 tips 5、小结

    1、流程设计

    我们先确定完成该业务逻辑需要用到的接口:

    接口 1 登录:最基本的登录接口,市场推广人员登录自己的账号。 接口 2 获取用户列表:在发放优惠券之前,先确定用户名单。 接口 3 获取优惠券列表:获取各种类型的优惠券。 接口 4 给用户赠送优惠券:以接口 2 和接口 3 的返回结果作为请求参数。 接口 5 退出登录:完成业务流程后,退出登录。

    按照上面的流程设计,我新建了下图中的 5 个接口,同时调整好正确的测试顺序。

    图片 1.png

    图片 2.png

    接口 1 的返回参数 statusCode ,我设置了 4 个状态码,刚好对应 4 种可能的情况,如果有更多可能性,可以继续补充。

    若 API 文档已建立了相关的接口,在自动化普通 UI 模式下可以批量添加已有接口。

    当我们编辑好接口,完成好对数据关联的设置,这时候只需回到自动化测试页面,点击“ 测试全部 ”就可以完成测试了。如何进行数据关联的内容将会在下文介绍。 下图可以看到,我们完成正确的设置后,得到了成功的测试结果。

    图片 3.png

    2、流程调试

    在流程测试中,上一个接口的返回参数可能会是下一个接口的请求参数。这时候就需要用上 关联数据 。比如给用户发送优惠券,就需要传递上一个接口返回的优惠券 couponID。下面通过两个步骤来进行数据关联:

    • 第一步:获取优惠券列表的返回值 我们有 3 种不同面值的优惠券:满 100 减 10、满 1000 减 100 和满 10000 减 1000,对应着不同 couponID。

    图片 4.png

    • 第二步:填写接口 4 的请求参数 接口 4 的请求参数就是接口 2 和接口 3 的返回参数。

    图片 5.png

    点击后面“关联”按钮,会出现以下弹框,选择要关联的数据,比如下图选中了 couponID。 图片 6.png 图片 7.png

    生成绑定值。如图中 userID 和 couponID 都生成了绑定值。 <response[39677].userList.userID>参数值的格式是 eoLinker 规定的关联参数形式,使用单书名号包裹的返回值 response [接口的关联 ID (可在单例列表进行查看)].子参数。 如果返回值的子参数是数组,那就需要加元素序号,第一个元素为 0,以此类推。如 couponList[0]。 关联参数可以在 请求头部、请求体( form-data、raw ),REST 参数 中使用。 在调试中,测试报告也是十分重要的。 使用普通 UI 自动化模式,测试完毕后,会生成详细的测试报告,通过查看详情就能看到完整的测试报告。如果测试失败了,通过测试报告也能及时进行修正。 图片 8.png

    3、定时任务

    在本文的业务流程中,我们可以通过定时测试任务,让整个流程自动执行。 首先在自动化测试的二级菜单--定时测试任务中,添加该任务。添加任务之前需要添加分组,比如这里新建了“赠送用户优惠券”的分组。

    图片 9.png

    这里需要填写名称:"给用户赠送优惠券",时间设置“永久有效”,周期为“一周”,日期选择“周一到周五的早 10 点和晚六点”,按照这样的规则发送优惠券。 在用例列表中选择之前设置好的用例:优惠券

    图片 10.png

    确认测试环境,填写我的邮箱,再选择通知类型。这样设置后,以后我们只需通过查看邮件,就可以获取接口测试的所有情况,确保接口正常运行。

    图片 11.png 图片 12.png

    如上图,每次的测试历史可以在测试任务列表下载,十分方便。

    4、使用 tips

    请求参数处理

    有些参数需要在发送前进行加密,例如密码等。在 eoLinker 中,通过代码注入功能就可以对参数 userPassword 加密,比如 对于接口 1,我使用 eoLinker 内置的加密方法对请求参数 userPassword 进行 MD5 和 SHA1 加密。 图片 13.png 图片 14.png

    在代码注入功能的右侧导航栏,eoLinker 目前内置了包括 MD5 在内的 3 种加密方式,点击就可以直接调用了。如果想用其他的加密方式,只需要了解一些简单语法你就可以使用 Javascript、Jquery 代码进行加密。当然也可以在发送前对请求参数做其他处理。

    返回参数匹配

    除了对请求参数进行处理外,对返回的参数也需要进行校验,在这个业务中,我们只选择特定的用户发送相应优惠券,这就需要通过校验来对返回的参数进行匹配。

    对于接口 2,我需要先对返回值进行判断,再决定自动化测试流程是否继续,eoLinker 校验失败时默认停止测试。如果不想停在这里的话,可以勾选下方的“ 该用例校验位失败时,依然执行下一个用例 ”。这样即便失败也会继续测试下去。

    下面说一下校验规则

    校验规则: statusCode 为字符串 000000 列表中的 couponID 是 1,couponName 为满 100 减 10

    eoLinker 填写的校验规则: 图片 15.png 填写匹配规则的过程中,主要为参数选择正确的类型( string、int 等)以及层级关系。比如在这里参数 couponList 和 couponID 就是不同的类型,而 couponID 是 couponList 的子字段。

    5、小结

    最后,完成任务退出登录,这样一个完整的业务流程就完成了。通过自动化测试的 UI 模式进行业务流程测试,既不用编写代码,又能通过测试报告及时修正错误,相比传统的测试方式极大地提高了工作效率。

    eoLinker,高效、专业、规范,让接口管理更加简单!

    更多更新内容请前往 eoLinker 微信公众号,本文转自 eoLinker 公众号。

    立即体验:https://www.eolinker.com

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3374 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 11:42 · PVG 19:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.