前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口自动化测试多场景实践 - 下篇

接口自动化测试多场景实践 - 下篇

作者头像
测试加
发布2023-02-17 16:51:18
6780
发布2023-02-17 16:51:18
举报

接口测试是保障负责系统质量内在要求和低成本的经济利益驱动作用下的最佳方案 xinxi,公众号:测试加接口自动化测试多场景实践 - 上篇

本文继续上篇,继续介绍接口自动化测试多场景实践 。

四、定时API自动化执行

但是在Eolink中可以使用API管理中导入历史录入的API信息,如果没有的话再使用手动创建监控API。

如下图,可以点击从API管理导入按钮,在项目列表中可以选择历史创建的项目并且选择要监控的接口即可。

1、但是在Eolink中不需要这么干,因为Eolink定位是一站式API管理平台,其内置了接口监控功能。Eolink实现的监控节点,并不是在本地进行监控,而是使用云监控方案,采用全国各地的监控节点,这样的优点是,可以覆盖全国的网络节点,提前发现接口在某些区域网络下可能存在的问题。

2、编写接口监控Case: 在传统方案中,需要熟悉代码语言和框架才能上手编写接口监控Case,有一定的学习成本。但是在Eolink的学习成本基本上是零,在页面上输入参数即可。

另外Eolink支持单API监控和API流程监控,单API监控是指一个接口发送请求完成就可以结束了,API流程监控是把某些接口串联起来,比如从商品浏览 > 下单 > 支付等串联业务。

3、接下来我们看看Eolink是如何完成编写接口Case的,首先需要选择API流程监控,点击从API文档导入测试信息。

在导入API信息中,选择需要的业务接口。

4、在执行步骤中可以看到刚才添加的测试步骤,从而形成一个API流程监控。这个功能比较适合后台功能模块和业务管理较强的接口。

5、调试监控脚本: 在传统方案中,调试脚本需要在本地执行脚本命令。在Eolink中只需要在页面中选择需要监控的接口,并且点击编辑按钮即可。

可以修改API监控的基础信息包括:API请求地址、API分组、API名称、API监控的项目环境等。

结果校验规则: API测试用例支持5种校验方式:

校验方式

描述

不校验

无论返回结果是什么,均认为测试通过

校验状态码

判断响应头部中的HTTP Status Code

校验JSON

判断响应结果的JSON结构和参数值,可以判断对象、数组、字段等信息

校验JSON Path

判断响应结果,可以使用JSON Path表达式提取字段验证

校验XML

判断响应结果的XML结构和参数值,可以判断对象、数组、字段等信息

完全匹配

判断响应结果是否等于预期结果

正则匹配

通过正则表达式去匹配响应结果,如果匹配的结果集不为空,则认为测试通过

6、定时监控: 在传统方案中,需要借助Jenkins外部工具进行定时监控。在Eolink中可以在本地创建监控任务,然后把任务发送到云端进行定时监控。

选择一个需要监控的接口,把监控频率选择10分钟一次,监控频率可以根据业务需要自行调整。

7、你可以在接口监控报告页面看到当前项目在选定的时间段内的整体监控概况,包括:所有监控节点(地区)的监控状态、指定监控节点(地区)的监控状态、API 监控状态统计等。

进入 API 的监控详情页,选择时间段为 实时,此时页面会显示该 API 最新一次的监控报告,可以看到API最新一次请求的各阶段时间分析:总时间、重定向时间等。

进入测试报告页面,在这里会列出所有手动批量测试、定时测试、Open api测试的测试报告。你可以点击下载按钮,将某次测试历史下载为HTML文件。测试报告的HTML文件中会详细记录该次测试报告的所有信息。

五、数据库操作

数据库操作的作用是可插入数据库操作步骤和自定义脚本步骤,实现数据库增删查改和初始化操作,并进行复杂灵活的处理。

使用数据库操作的场景最常见的是:

  • 测试前对数据库插入测试数据
  • 查询 API 操作是否对数据库生效
  • 测试执行完毕清除脏数据

接下来我们来演示一下在日常接口测试中最常见的请求接口后查询 API 操作是否对数据库生效的场景。

1、首先需要切换到API 自动测试空间,点击公共资源可以看到数据库连接。

2、在数据库配置配置页面,可以自定义数据库连接名称,支持Mysql、Oracle、PostgreSQL三种数据库类型,需要手动输入数据库连接的配置: 项目环境名称、数据地址、端口号、数据库名称、用户名、密码等参数,可以点击测试按钮验证数据库是否能正常连接。

需要注意的是: 设置每个项目环境下使用不同的数据库连接信息,当系统找不到某个环境下的数据库连接信息时会自动使用默认的连接配置。

3、数据库连接配置完成后,需要在测试用例中添加数据库操作步骤才能真正使用到数据库。

创建商品接接口测试用例详情页面中,点击添加测试步骤下拉菜单,选择添加数据库操作。

4、在数据库步骤编辑页面,输入步骤的名称,选择之前已经创建好的数据库连接在编写SQL区域编写通过主键ID查询的商品名称语句另外,在SQL语句输入框填写需要执行的SQL语句,可以填写多条SQL语句,每条语句使用分号“;”进行分隔。

在SQL语句中使用 ${shop_id} 可以作为变量,该变量可以从创建商品接口中的响应结果中返回值提取

代码语言:javascript
复制
select shop_name from shop where shop_id=${shop_id}

对于SQL查询返回结果,也可以提取成变量可被后续测试步骤引用

代码语言:javascript
复制
$db_param_shop_name = "eo_default_value";

六、自定义函数

可以将需要重复使用的 Javascript 代码保存为自定义函数,方便在 API 的预处理或自动化测试脚本中使用 。

为了便于模拟演示效果,我们来模拟一个测试案例。在请求接口前,使用自定义函数修改请求头参数。

1、在自定义函数列表中,可以看到函数的基本信息:

  • 函数调用名称: 在API脚本或者自动化测试中使用的函数名。
  • 函数描述: 函数的中文名称或描述,仅用于方便用户了解函数的功能。

为了降低对自定义函数的使用门槛提供内置快捷方式功能: 发送网络请求、自定义全局变量、项目环境参数、编解码功能。另外还提供了内置函数手册方便大家学习,https://help.eolink.com/#/tutorial/?groupID=c-709&productID=13。

2、在API测试的API脚本标签页点击 插入自定义函数 按钮。

3、在弹窗中选择需要插入的函数,系统会自动在光标处插入自定义函数的调用代码。

4、在前置脚本代码块中选择 自定义函数,并且给source变量赋值。

代码语言:javascript
复制
let source="eolink"
eo.userFunction.request_edit_header(source)/*修改请求头*/

在测试页点击发送按钮后请求头部区域可以输出调用自动定义函数的参数指souce等于eolink。

七、DevOps自动化流水线测试

DevOps中引入自动化流水线测试的主要优势在于通过持续集成手段,引入Devops理念,将测试工作通过持续集成方式不断的进行自动化演进,针对于业务场景变更频繁的黑盒功能测试,代码库内容变更频繁的白盒测试,Devops测试方式能够更好的对软件交付相关的质量能力负责。

DevOps自动化流水线中结合API接口自动化测试是质量保障中重要的一环,在本文中可以结合Eolink的API 插件实现。

eolink-jenkins-plugin插件是依托于Jenkins环境使用,需要手动或者自动在Jenkins上 安装,手动安装需要通过官方提供的七牛云下载链接获取最新安装资源包,下载地址:https://public.eolinker.com/devops/plugin/eolinker-jenkins-plugin.hpi?attname=eolinker-jenkins-plugin.hpi。在 Jenkins Manage Plugins 的 Advanced 页签 Upload Plugin 中选择待上传安装的资源包,之后点击 Upload 即可

点击提交按钮后,就开始从网络下载eolink-jenkins-plugin插件,下载完成后需要重新Jenkins。

进入待构建项目的 Configure 页签中即可进行 Eolinker API 自动化测试行为构建,具体构建步骤如下:

填写插件配置

  • 服务器地址:Eolinker网址,线上产品请填写: https://api.eolink.com ;
  • Open API 调用密钥(Eo-Secret-key):open api 的访问鉴权密钥;
  • 空间ID(space_id):工作空间的 ID;
  • 项目ID(project_id):需要测试的自动化项目 ID;
  • 事件:目前仅支持测试指定自动化用例、批量测试自动化用例、执行定时任务三种事件;
  • 报告监听间隔时间:测试报告需要时间生成,可以设置间隔时间去轮询查询,单位为s;
  • 报告监听超时时间:设置查询报告的超时时间。超出超时时间不再请求查询报告,单位为s;
  • 报告接收邮箱:报告生成后发送的通知邮箱地址,支持填写多个邮箱地址,用逗号分割;

后置处理脚本:项目构建完之后执行, 可以处理查询报告 Open API 返回的数据或者清理下载的报告。

如何引用查询报告 Open API 的响应参数,用{ { } }表示变量,jsonpath 来作为变量名。

若希望获取测试状态。可通过{ { $.result.test_status } }来拿取相应信息。

在DevOps自动化流水线中,可以在测试环境构建成功后自动化触发当前Jenkins任务完成自动化测试。

点击测试报告 https://export.eolink.com/eoLinker_case_test_report_1669812365384477.html?attname=,可以看到本次的测试概览: 总耗时、通过率、测试用例执行情况等指标。

八、总结

可以看出Eolink在接口自动化测试多场景的支持能力很强,主要总结有如下几点:

  • Eolink在单自动化接口测试用例中,支持执行顺序排序,参数传递,结果判断条件,参数快速加解密等复杂功能。多接口自动化测试用例中,也可以快速组建测试用例进行高效回归测试,提高测试效率和保障服务质量。
  • Eolink的定时监控基于本地的定时功能实现,能覆盖更多真实流量场景,更能按照用户的场景发现问题,灵活调用服务器闲时资源。
  • 可快速集成DevOps自动化流水线中,无缝顺畅接入原有的研发流程中,为团队降本增效。

综上总结,Eolink一款综合性比较强的工具,不管在新项目还是老项目中,Eolink确实都是一个不错的选择。

eolink产品体验地址如下,支持win、mac、linux多平台, https://www.eolink.com/?utm_source=qyzzh&utm_medium=ceshijia&utm_content=xinxi09

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 四、定时API自动化执行
  • 五、数据库操作
  • 六、自定义函数
  • 七、DevOps自动化流水线测试
  • 八、总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档