• 0
  • 0
分享
  • 100%覆盖接口需求!推荐一款零编码的接口自动化测试工具!
  • quinn 2024-10-21 16:29:03 字数 2743 阅读 24 收藏 0

  我在大型政府部门做了 20 多年的质量过程改进服务,结合多年的实践经验,最近在天工 AI 助力下,使用 Python 写了一个接口和灰盒自动化测试工具 DATF(Daniel Auto Test?Framework)。

  下边介绍一下 DATF 这个轻量化自动化测试工具的特性,欢迎有需求的测试人员试用,希望能对提高项目的质量和测试工作效率有所帮助。

  轻量化

  免安装,在个人用机上开包即用,无需额外设备花销。目前市场上的接口自动化测试工具基本是 SaaS 模式,需要订阅,数据放在公有云上。如果客户有数据安全要求,就只能购买产品后部署私有云,需要专用服务器、数据库,需要部署自动化测试平台,还需要专人维护,随着使用人员的增多,可能还需扩展服务器资源。

  上手快

  对于使用Postman做过接口测试并懂基本的SQL的人员,借助产品包中30多页的《DATF使用手册》,1 小时内就能上手,不要求懂 Python,学习成本低。

  想要《DATF使用手册》的童鞋可以添加下方二维码,回复关键字“DATF使用手册”;

15326880_202410091028191Shbg.jpg

  无需编写自动化测试脚本

  不用写代码,只需做配置即可生成自动化测试用例。比传统的编写接口自动化测试用例模式 Python+Request+PyTest+Allure 效率提高至少 3 倍。同时降低了对编写接口自动化测试人员的技术能力要求。让测试人员把更多的精力放到细致分析需求,深入了解系统设计上,设计出更符合要求的自动化测试用例。

  基于测试人员视角设计

  传统的接口自动化测试工具,大多数是基于单元测试的原理发展来的,是从开发人员的视角设计的,往往没有考虑到测试人员的实际需求和工作习惯。DATF 完全是从测试人员视角设计,能满足大部分测试人员的通用需求。

  易用性

  DATF 的代码行数,总计 12000 行,其中只有 3000 行是核心功能,其余 75%的代码都是为提高易用性做的开发。鉴于目前用过的工具,测试报告展示方面感觉都不是很满意,为方便使用者查看历史测试报告数据,又开发了测试报告展示工具。接着在这个工具基础上,为方便控制测试用例配置和执行,减少手工直接修改配置文件造成的人为错误,后续又开发了测试控制台。

  版本控制

  DATF 采用了全配置文件设计,版本管理就像代码版本管理一样容易。目前市场上的接口自动化测试工具能实现版本管理的很少。

  全流程可视,可控,可溯

  可视,可控,目前的接口自动化工具都能实现。DATF 的强项是可溯。因为设计了历史记录追溯和配置文件的版本管理功能。这就为防止测试用例缺失做了有力的保障。做过项目的都清楚,虽然制度上有时要求对测试用例评审,但实际工作中很难做到全面评审,顶多评审一下关键功能。

  有了可追溯功能,项目测试管理人员就可以通过事后问题倒查追责的方式,破解了不评审测试用例又担心遗漏的难题。

  同步开发自动化测试用例

  通过mock方式模拟接口返回值,测试人员可以提前同步开发调试接口自动化测试用例。接口部署后切换到接口方式,一键开始接口自动化测试。上报缺陷后,等待开发人员修复缺陷期间,就可以开始手工前端操作流程测试,相当于同时有 2 倍的测试人员在干活,大幅缩短了项目开发周期。

  辅助开发定位问题

  对于复杂系统,大部分开发人员往往只了解自己负责的部分,对业务全流程不是很清楚;

  定位问题时,自己也不会做符合业务规范的测试数据,常常需要测试人员帮忙准备数据,增加了测试人员工作量。

  有了工具,开发人员就可以直接使用报错接口自动化用例的初始化脚本做测试数据,调用用例的调用参数,很快就能定位问题,而且修复后可以自己直接使用测试人员写好的测试用例。

  运用工具,在开发环境先验证,通过后再提交测试,降低了缺陷修复中反复修改的概率,缩短了缺陷修复的时间。

  一键切换测试环境

  相同的数据源名称,配置时对应不同环境的数据库,不用修改测试用例,一键即可在确认和回归环境之间自由切换后执行测试用例。

  全面的测试报告展示功能

  · 可以展示不同时间生成的测试报告的历史数据。

  · 对于同一个测试用例,可以比对相同测试环境下的测试执行结果的历史数据。

  · 可以展示项目、接口、分组级的测试样例统计和通过率。

  · 可以统计每个测试人员的工作量和通过率。

1-1.png

  100% 覆盖接口需求

  我个人认为,目前在自动化测试方面存在 2 个误区。

  一个误区是希望尽可能通过多做 GUI 自动化测试来保证软件质量。多年的实践证实,这只是不切实际的幻想。首先,GUI 自动化测试用例无法在确认测试时就开发,否则开发人员一个简单的前端修改,就会让测试人员疲于应付,回归测试时开发又没有足够的时间。其次 GUI 自动化测试用例的维护成本是非常高的,对于人员少、任务急的项目根本不适用。而且长期项目更换几批人后,后来的人就很难再维护前边的人开发的自动化用例了。GUI 自动化测试用例只适合上线后需要版本不断迭代开发的项目,只需要把最常用的最重要业务流程以及常用的异常状态前端处理流程做自动化用例,大概占总测试用例数 10%左右的用例,用于每次新版本上线前的常规验证。其他的前端测试发现的缺陷,很多是无法通过 GUI 自动化测试发现的,需要手工测试。

  另一个误区是尽量多做场景自动化测试。场景测试用例很唬人,看着很漂亮,特别是喜欢给领导演示时用。场景测试和接口测试的区别就是测试数据的连续性,开发维护测试用例比较麻烦,每步之间需要传输动态数据参数。但场景测试一旦第一步出错,后续步骤的测试全错,无法确认后续步骤是否真的错了,需要花费更多的时间确认错误。而接口测试每个测试用例数据是完全独立的,数据初始状态一定是没问题的,只要测试用例没通过,就说明对应的逻辑处理肯定错了。在实际项目测试中必须用场景化测试的情况非常少,完全可以手工测试替代。

  接口和灰盒测试才是保证软件质量最有成效的方法,事半功倍。我之前参与的项目,要求都是接口和灰盒测试必须 100%全覆盖,GUI 自动化测试非必要可以不做。接口都测试通过了,界面操作再出问题就可以很快确认是前端的问题。

  测试人员要做开发人员和业务人员之间的桥梁,要比业务更懂系统设计,要比开发更懂业务流程知识。如果一个测试人员在一个项目中,经历过接口自动化测试 100%全覆盖,项目结束后,一般都会成为至少半个业务专家,并且对系统设计和需求有更深入和全面地掌握,对提升自己是很有帮助的。即使未来 AI 会替代部分开发人员,但很难替代测试人员。

  方便易用的控制台

1-2.png

1-3.png

1-4.png


作者:徐志强    

来源:http://www.51testing.com/html/78/n-7802878.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   亚马逊发布人工智能聊天机器人Q三天后,一些员工就准确性和隐私问题发出了警报。据 Platformer 获得的泄露文件显示,Q 正在"出现严重幻觉并泄露机密数据",包括 AWS 数据中心的位置、内部折扣计划和未发布的功能。一名员工将这一事件标记为"sev 2",意思是这一事件严重到需要在晚上呼叫工程师,要求他们在周末加班修复。  Q的早期困境正值亚马逊努力与微软、Google和其他科技公司在建立工具和基础设施以利用人工智能优势的竞争中超越亚马逊的看法作斗争之际。今年 9 月,亚马逊宣布将向人工智能初创公司 Anthropic 投资 40 亿美元。本周二...
            0 0 1022
            分享
          •   在今日的 2024 联想创新科技大会上,联想集团与 FIFA 国际足联宣布达成合作,联想集团成为 FIFA 官方技术合作伙伴 —— FIFA 最高级别的赞助类别。  该合作协议涵盖将在加拿大、墨西哥和美国举办的 2026 年 FIFA 世界杯,以及将在巴西举办的 2027 年 FIFA 女足世界杯。  根据合作协议,联想集团的产品、服务和解决方案,包括一系列最新的 AI 创新产品组合、标志性的 ThinkPad 笔记本电脑、平板电脑、摩托罗拉手机和服务器等,都将应用到 2026 年和 2027 年的世界杯赛事中。这些技术将用于提升球场内球迷观赛体验和全球转播效果,增强赛事分析。  注:20...
            0 0 72
            分享
          •   在正式开始讲解之前,先讲一下什么是“好的”测试用例,这个“好”又应该体现在哪些方面。这两个问题看似简单实则难以回答。你可能会说:“发现软件缺陷可能性大的测试用例就是好用例。”然而,我会反问你:“你打算用什么方法来量化测试用例发现缺陷的可能性?”  类似地,你可能还会说:“发现至今未被发现的软件缺陷的测试用例就是好用例。”那么我想问你的是:“如何评估是否还存在未被发现的缺陷?如果软件中根本就没有错误呢?”其实,这是定义“好的”测试用例的思路错了。比如,一个人吃烧饼,连吃 5 个不饱,吃完第 6 个终于饱了。早知道吃了第 6 个就会饱,何必吃前面 5 个呢?他吃的 6 个烧饼其实是一个整体,一...
            4 4 2265
            分享
          •   从去年决定跳出舒适区,应聘大厂,截止到目前已经将近一年,值此之际,总结下自己近一年在大厂的经历。  希望通过我的感触,能够帮助你们进一步了解大厂的测试工作。  维护上下游合作关系  在大厂,人际关系非常重要,为什么要把它放在第一位,是因为在大厂里做测试的时候,所涉及的系统错综复杂,种类繁多,经常要进行上下游的联调测试。  我刚开始的时候,测试联调找不到相关的责任人,使得自己在测试工作中浪费了大量的时间和精力,所以进入大厂之后,一定先要:  首先,梳理自己负责系统的上下游联系人,将其联系方式整理起来,方便后续查询联络,可以参考下面表格进行简单汇总即可。  其次,维护好自己与前辈的关系,保持自...
            10 10 887
            分享
          • 有很多小伙伴想要基础版本,从0到1,今天它来了~用十个特别简单的案例,让你清晰的从0到1接触到接口测试。最好自己动手去写一遍,光看是不行的。从刚开始特别简单的案例,到最后略有难度的接口小案例,让你快速清晰的学习接口!对于接口测试,很多同学可能会说接口真的有测试的必要吗?我只把功能测试好了不就ok了吗?答案当然是否定的,接口测试的重要性如下:那么接口提测的标准是什么呢?首先对于接口文档的要求如下:接口类型输入参数每个参数名;每个参数类型;每个参数业务含义;每个是否可空;每个字段长度(可选,一般需要提供,有严格要求的字段需特别注明);接口通用基本要求:返回json字段信息,不可出现 关键字类型,如...
            2 8 5257
            分享
      • 51testing软件测试圈微信