《随便测测》web接口测试平台

Kobayasii Kobayasii     2023-04-15     476

关键词:

编写用例的船新版本,从未有过的顺滑体验

背景

在保证用例运行稳定、高效、准确的前提下

降低测试人员编写用例的时间为目的,减少编写用例的复杂度,达到提升效率的目的。

解决问题

因被测系统业务流程长,接口多(多的一个场景上百个接口),而无法快速完成一个场景用例的编写

创新设计

改变传统自动化用例编写模式,取消传统模式中上下级接口数据的提取参数变量使用参数变量的固定编写套路。以程序提供半自动批量参数替换能力,程序自动关联,合理的页面操作模式,让测试人员专注于自动化用例数据的编写设计,不为使用软件的过程而烦恼

经实践,编写效率可提升90%以上

平台流程图

概念解释

  • 模板-可理解为:原始数据、测试场景

  • 模板-用例:1对N

  • 转化-1比1转为用例,可页面编写,可下载为JSON文件编写再上传

  • 数据集-针对单套用例编写测试数据集,结果校验,以数据驱动用例,未使用数据集则是普通运行模式

  • Number-程序生成,模板、用例的接口顺序序号,用例运行的核心

使用技术栈

  1. 后端

python: uvicorn+fastapi

FastApi-Python的一款高性能轻量级Web服务框架,结合Pydantic-数据验证、请求响应模型,Typing-类型注解,SqlAlchemy-数据库ORM操作,得以优雅的完成后端开发

  1. 前端

vite+vue3+element-plus

轻量级的前端构建工具-Vite,渐进式框架-Vue3,漂亮便捷的组件库-Element Plus,边学边完成前端的开发

  1. 数据库

Sqlite3,没想到,万万没想到

功能简介

模板导入

  1. 模板列表

数据来源:HAR导入、手动组装、Swagger(开发中)

  1. 模板转化为用例

新增用例、覆盖用例、下载为json附件编写用例再上传为用例

一个模板可挂多个用例

用例编辑

  1. 用例列表

  1. 用例详情及配置

a\\以表格横向平铺的方式,让接口所有数据展示出来

b\\所有用例的编辑操作,都可以在这个弹窗中完成

  1. *模板转用例,预处理

预处理:

1、模板转用例的过程中,程序自动的将请求接口参数的kev-value和它前面接口的response相匹配,key-value相匹配则替换成number.$.jsonpath表达式

2、统一响应数据作为校验内容,可配置,如code: 0一般项目都会存在,自动判断哪些接口符合,然后添加到校验内容中

  1. *半自动参数替换

*可以使用value或key去response查找数据,生成number.$.jsonpath

*可自定义的去输入number.$.jsonpath表达式,再替换

*表达式不是必须的,可以用这个功能直接替换测试具体数据

说明:

理论情况下,导入har或者swagger是可以获取到response数据的。也可以通过其他途径获取到每个接口的response。如开发调试过程中的输出,或通过抓包,或通过接口文档等方式。

若拿不到response返回内容,那么断言也就没了意义,接口测试也不会成立。所以以上的操作是能够进行下去的

  1. *冒烟跑测

在做完第5步和第6步后,程序就可以做冒烟跑测了

对比:

a\\使用传统方式的提取变量、使用变量的方式编写用例(apifox),对30个接口进行操作,提取了3个变量6处使用,并调试到冒烟跑测级别,花费时间30~40分钟

b\\使用创新的参数替换能力做以上操作,花费时间2~3分钟

以此类推,更多的接口(上百个)更多的参数替换(10~20个等),传统方式时间会更长

  1. 编辑Parmas、Data、Headers

格式化Json和数据校验

  1. 编辑 断言

自定义添加、修改、删除,每个断言独立操作,操作简便

测试数据集

  1. 导出数据集

说明:

  1. 按每个接口区分各自的params、data、check,(可扩展headers)

  1. 以不同颜色标记接口,避免眼花

  1. 单个接口单独校验,一横行数据一套校验

  1. 自动过滤掉有接口上下级数据关系的参数(前面的第五、六步操作后的参数)

  1. 重心可放在针对数据集的用例设计上

  1. 导入数据集

说明:

按接口一个个分开,可以自定义选择执行哪些数据集

执行前,会将数据一个个的替换到对于key上

其他功能

  1. 全局参数替换

适用于接口发生了变更,自定义修改

  1. 模板组装

通过从模板(原始数据)重新组装新的接口顺序,创建新的测试场景

也可创建一个空的模板,再通过手动添加api数据进行数据添加

  1. 测试报告 allure

说明:

  1. 按用例分开:http://ip:8000/allure/case_id/run_order/,单个用例单套趋势图

  1. 仅使用pytest.mark.parametrize 用数据驱动的方式运行用例,只是这里驱动的是接口的所有内容:url、method、parmas、data、hedaers、file等接口请求所需要用到的内容,以及校验字段

总结

自己在用过参数提取再使用的传统测试平台,以及apifox的参数提取再使用,深刻感受到:

在对多流程接口自动化用例用例编写过程中,编写用例的时间基本就花费在了参数提取和使用操作过程上面。理论上,测试时间应该花在用例设计、用例数据准备才是合理的表现,测试人员不应该为软件使用复杂度发愁。

作为一个软件测试从业者,想解决这个问题所以研发了这个平台

《随便测测》接口测试平台:

随心、随意、随景

暂未开源,还有未完成的功能

基于web接口的自动化测试选型

基于web接口的自动化测试选型近期投入的一个项目需要做核心功能的测试场景自动化,以应对部署复杂和跨系统间的流程验证。在技术选型阶段,个人首先想到的是PY+unittest,项目架构师推荐了Jmeter,之前的项... 查看详情

开源~自研的一套自动化测试平台实现web接口自动化性能测试支持上传jmeter脚本

感谢大家的莅临,小编在文章末尾为大家准备了一些福利,需要的可以获取哦。前后端已分离,如果你也觉得不错可顺便点击github上的星星给个奖赏我也不介意哈~~~~~如有其他需要的功能不定期更新给加上,主要... 查看详情

关于自动化测试平台搭建的初步构想

...使用开源的项目质量管理软件(例如:禅道)即可。如果进行接口、UI自动化测试、性能方面的测试,则可有考虑自己搭建测试平台。下面就以接口测试为例,接口测试一般抓包后需要进行消息体的构造,有人喜欢用postman工具直接保... 查看详情

基于jmeter的web端接口自动化测试平台(代码片段)

框架功能点批量导入har包生成接口用例接口用例分组树形展示用例编辑失焦自动保存用例编写提供快捷调试模块支持多类型参数,json+文本两种校验支持同一个项目中接口参数传递提供即时任务+每日定时任务两种任务... 查看详情

接口测试全流程扫盲

...测试?5.问什么要做接口测试?6.怎样做接口测试?7.接口测测试点是什么?8.接口测试都要掌握哪些知识?9.其他相关知识?一.什么是接口?接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的... 查看详情

接口测试全流程扫盲

...测试?5.问什么要做接口测试?6.怎样做接口测试?7.接口测测试点是什么?8.接口测试都要掌握哪些知识?9.其他相关知识?1.什么是接口?接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交... 查看详情

接口测试的概念

...测试?4.为什么要做接口测试?5.怎样做接口测试?6.接口测测试点是什么?7.接口测试都要掌握哪些知识?8.其他相关知识?1.什么是接口?形象来讲:我们天天用的手机,需要充电,那么我们需要给给手机插上充电器,如果充电... 查看详情

某平台的一次简单渗透测试记录(代码片段)

...出来浏览器中访问,测测是否存在越权或者SQL注入。随便给个数值访问测试,发现只存在水平越权,不存在注入。去掉参数直接访问,却弹出来了报错页面。该站点使用的是spring框架,重新使用spring相关接口... 查看详情

检索框/输入框测测试用例

检索框/输入框测测试用例功能测试性能测试界面测试安全性测试兼容性测试易用性功能测试1.搜索内容为空,验证系统如何处理2.搜索内容为空格,查看系统如何处理3.边界值验证:在允许的字符串长度内外,验证... 查看详情

自学软件测试,学到这种程度,面试官随便拿捏

一、软件测试学到什么时候可以找工作掌握基本得软件测试技术,偏手工功能测试,根据不同城市来说吧6k-10k(本阶段已经饱和了)想拿高新得,就要会自动化测试相关得技术。比如现在企业当中用的比较多... 查看详情

接口测试的另一种方式–接口测试平台

接口测试的另一种方式–接口测试平台文章目录[显示]搭建的初衷现状目前,基于我们组所需要测试的点,很大一部分都是跟接口相关的,不管是我们系统内部的接口还是第三方(外部系统)的接口。部分接口还涉及到对传输数据... 查看详情

[原创]浅谈互联网金融接口测试平台搭建

[原创]浅谈互联网金融接口测试平台搭建  接口测试我想各位做测试都不陌生,尤其是在现在分层测试思想倡导下,接口测试可以说是互联网行业必备的测试技能之一,我以前的博文也有讲过类似的内容,要想了解可以移驾到... 查看详情

jenkins+jmeter+ant搭建接口测试平台

接口测试的重点是检查数据的交换,传递和控制管理过程以及系统间的相互逻辑依赖关系。接口测试的流程项目启动后,测试人员要尽早拿到接口测试文档。开始编写接口测试用例将接口测试用例部署到持续集成的测试环境中设... 查看详情

接口测试|接口测试入门与实践(代码片段)

接口测试讲义1.接口测试的类型主要包含三种测试:Web接口测试,应用程序接口(API,applicationprogramminginterface)测试,数据库测试。实际上意义就是UI界面到数据库之间,数据流经过的所有过程。LAMP(LinuxApacheMySQLPHP)/LNMP(LinuxNgi... 查看详情

浅谈接口测试

一、接口测试的必要性和意义这里主要说说接口测试的必要性和意义:接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选... 查看详情

(三)接口自动化测试平台之——测试集合接口测试交互页面设计

...合列表我们在当前页面创建了用例集合之后,可以在创建接口的时候,选择归属集合,方便管理,查看以及测试页面功能:执行:执行当前服务结合下所有接口的用例修改:编辑服务集合新增:新增服务集合删除:删除该服务集... 查看详情

使用jmeter做web接口测试

接口测试概述定义APItestingisatypeofsoftwaretestingthatinvolvestestingapplicationprogramminginterfaces(APIs)directlyandaspartofintegrationtestingtodetermineiftheymeetexpectationsforfunctionality,reliability,pe 查看详情

web接口测试之jmeter接口测试自动化(数据驱动测试)

 接口测试与数据驱动1简介    数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程。 2数据驱动与jmeter接口测试    我们已经简单介绍了接口... 查看详情