接口测试入门课
15
15
1.0x
00:00/00:00
登录|注册

04 | 案例:如何把流程化的测试脚本抽象为测试框架?

完成一个什么样任务的类或者函数
提出更好的修改意见
通过实践不断积累和完善测试框架
将通用类和测试驱动框架相结合,完成完美的测试框架
将通用类的构造函数接受被测系统的根路由,使其成为通用类
优化重复代码,增加代码的可读性和可维护性
通过不断改写原有的测试脚本,形成独一无二的测试框架
通过分析和观察,抽象封装出一个测试框架
循环不断进行框架封装
多观察已经写好的测试脚本,找出其中的重叠部分,最后完成封装
不断撰写测试脚本
思考题
测试框架的完善
测试框架的优化
测试框架的形成
测试框架的诞生过程

该思维导图由 AI 生成,仅供参考

你好,我是陈磊。
在上一节课中我和你强调了,用什么工具或代码解决测试问题并不重要,拥有接口测试思维才更重要。在今天的课程中,我会带你从零开始打造一个测试框架,建立你自己的技术体系。
在这里,我推荐你学习一门编程语言,以便你可以更加得心应手、个性化地改造你的测试框架或工具。在这节课中,我会以 Python 语言来展示我的代码示例,不过语言本身不是重点,你只需要了解这其中的逻辑与方法即可,同样的事情,你可以使用 Java、Go 等任何你喜欢的语言来完成。
当然,如果你想学习 Python 语言的话,我推荐你花一个周末的时间看看尹会生老师的“零基础学 Python”课程

为什么要开发自己的测试框架?

之前,我们说到了用 Postman 来完成接口测试,但随着你的接口测试项目逐渐增加,你会发现越来越难以管理它的脚本,虽然测试工具导出的测试脚本也可以存放到代码仓库,但是,如果只是通过代码来查看是很难看懂的,你必须用原来的测试工具打开,才能更容易看懂原来的脚本做了什么样的操作。
同时,Postman 也有其自身的局限性,最重要的一点就是它支持的接口协议有限,如果你接到了一个它无法完成的接口类型的测试任务,就不得不再去寻找另一个工具。由于接口类型的多样和变化,你会有一堆工具需要维护,这无疑会提高你的学习成本和技术投入成本。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何打造一个接口测试框架,并强调了拥有接口测试思维的重要性。作者建议通过学习一门编程语言来个性化改造测试框架或工具,并指出了开发自己的测试框架的重要性。在搭建测试框架之前,作者介绍了Python的第三方HTTP协议支持库requests,并提供了相关代码示例。通过示例代码,读者可以了解如何使用requests完成接口测试,并学习如何抽象出一个测试框架的技巧和思路。文章强调了接口测试思维的重要性,以及如何通过抽象测试脚本来建立自己的测试框架。通过分析和观察,读者可以看到原始的测试脚本存在相同的部分,通过将这些相同的部分合并和抽象,可以增加代码的可读性和可维护性,也减少脚本的开发量。文章还提到了如何优化测试框架的代码,使其更加简洁易读。最后,文章指出了测试框架的完善需要与测试驱动框架相结合,才能实现自动化测试并生成测试报告。整体而言,本文为读者提供了打造接口测试框架的思路和方法,帮助他们更好地理解接口测试的重要性和技术特点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《接口测试入门课》
新⼈⾸单¥29
立即购买
登录 后留言

全部留言(42)

  • 最新
  • 精选
  • 捷后愚生
    接口测试框架的形成过程 流水账式的接口测试脚本 在编写不少流水账式的接口测试脚本后,发现其中存在大量重复的代码 思考:能不能把公共的操作单独抽离出来,抽象到一个common文件中,在其他文件继承或导入文件进行使用 如何区分哪些是公共的部分? 一般哪些是公共部分? 公共部分与非公共部分的边界是什么? 提供common文件的通用性 如不写死测试系统,通过传入参数指定测试系统 加入测试报告 加入测试报告模块,把测试结果储存在测试报告当中,而是都使用print打印 加入测试驱动框架 加入unittest或pytest测试驱动框架来驱动各个模块,更好地组织测试脚本 加入日志 为了更好地定位和分析问题,加入日志模块 加入断言 针对复杂断言,引入jsonpath断言、Xml断言、Xpath断言、hamcrest断⾔、Json schema校验 引入POM 为了更好地区分业务操作,方便脚本维护,引入POM 引入参数化 为了应对大数据量测试,引入参数化 ...... 不要把测试框架看得太高大上了,不是只有像selenium、appium、httprunner才叫测试框架,你可以从一个简单地测试框架开始做起。 测试框架是在编写大量测试脚本地过程中不断抽象封装出来地,然后不断完善,是一个循环往复地过程。

    作者回复: 看你的总结 我都想修改我的课程总结了。太棒了

    2020-11-28
    3
    59
  • happychap
    有个观点与老师不同,就是在编程语言的选择上,针对新手而言,选择与研发团队相同的编程语言(java,python,js,go)个人觉得会更好一些,一方面有研发团队作为依靠,另一方面在接入ci时,可以复用研发团队的ci接入技术栈。再有就是能复用面向测试的底层开源库就先复用它们,把更多的精力放在测试领域功能封装上,如:入参的处理,出参的传递,接口请求结果的抽取等方面。 如果对编程语言还是一知半解,老师本讲所讲的内容就要多去理解、实践了,它是很好的入门窗口。

    作者回复: 您好,看了您的留言,你的观点也有道理,我不推荐按照rd的技术栈选择是因为rd的技术栈入门门槛高,ci,cd流水线也不依赖rd技术栈,因此我建议在基础薄弱的小伙伴选择上以简单的开始。

    2020-02-08
    6
    11
  • 技术修行者
    看完这篇文章,可以更清晰的感觉到这个专栏的受众应该是初级测试人员,不太适合开发人员。 在部落中也零星看到一些关于这个专栏的讨论和批评,我觉得可能是因为大家对专栏的期望太高了,结果在这里没有看到化腐朽为神奇的东西。 一步一步来吧,总归是开卷有益,拓展思路,查漏补缺也挺好的。

    作者回复: 谢谢您的支持,每个人都有自己的评价,我虚心学习

    2020-02-23
    2
    5
  • 丁丁历险记
    推荐一本书,martin flower 的重构。

    作者回复: 好书

    2020-05-02
    2
  • 深瞳
    上了这个课程以后才知道自己会的接口测试知识太太少了,要学的太多了,自己的基础太薄弱了

    作者回复: 发现了不足就是最大的收获,也是对我最大的鼓励,谢谢您的支持

    2020-04-01
    2
  • 陈优雅
    单一接口测试代码可以用postman直接生成

    作者回复: 谢谢,后续课程也就有相关讲解

    2020-02-09
    2
  • Geek_a57228
    老师,看你的脚步,写公共方法的那一段是否需要加上import requests呢?不然后面调用requests包时,会有问题吧,刚学Python代码,所以问题比较初级

    作者回复: 嗯,是的谢谢指出。

    2020-02-07
    2
    2
  • 牺牲
    我真的没看出common接收变量后,代码量有什么节省。就是不用动框架了,每次传参就可以了。

    作者回复: 也不差啊

    2020-05-08
    2
    1
  • 7F
    有一个Python业界很获得接口测试框架,HTTPrunner,老师你怎么看这个框架。

    作者回复: 每个框架都有它的优势和劣势,HTTPRunner我还没听说,有时间我去学习一下。

    2020-02-09
    4
    1
  • 杨亚玲
    有下面这样的错误: print('Response内容:' + response_login.text) AttributeError: 'NoneType' object has no attribute 'text'

    作者回复: 您好,我在我的电脑上没有发现有类似保存,您方便把全部代码贴出来看一下吗。

    2020-02-08
    3
    1
收起评论
显示
设置
留言
42
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部