软件测试52讲
茹炳晟
eBay中国研发中心,测试基础架构技术主管
立即订阅
13434 人已学习
课程目录
已完结 63 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从“小工”到“专家”,我的软件测试修炼之道
免费
测试基础知识篇 (11讲)
01 | 你真的懂测试吗?从“用户登录”测试谈起
02 | 如何设计一个“好的”测试用例?
03 | 什么是单元测试?如何做好单元测试?
04 | 为什么要做自动化测试?什么样的项目适合做自动化测试?
05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
06 | 你真的懂测试覆盖率吗?
07 | 如何高效填写软件缺陷报告?
08 | 以终为始,如何才能做好测试计划?
09 | 软件测试工程师的核心竞争力是什么?
10 | 软件测试工程师需要掌握的非测试知识有哪些?
11 | 互联网产品的测试策略应该如何设计?
GUI自动化测试篇 (10讲)
12 | 从0到1:你的第一个GUI自动化测试
13 | 效率为王:脚本与数据的解耦 + Page Object模型
14 | 更接近业务的抽象:让自动化测试脚本更好地描述业务
15 | 过不了的坎:聊聊GUI自动化过程中的测试数据
16 | 脑洞大开:GUI测试还能这么玩(Page Code Gen + Data Gen + Headless)?
17 | 精益求精:聊聊提高GUI测试稳定性的关键技术
18 | 眼前一亮:带你玩转GUI自动化的测试报告
19 | 真实的战场:如何在大型项目中设计GUI自动化测试策略
20 | 与时俱进:浅谈移动应用测试方法与思路
21 | 移动测试神器:带你玩转Appium
API自动化测试篇 (3讲)
22 | 从0到1:API测试怎么做?常用API测试工具简介
23 | 知其然知其所以然:聊聊API自动化测试框架的前世今生
24 | 紧跟时代步伐:微服务模式下API测试要怎么做?
代码测试篇 (3讲)
25 | 不破不立:掌握代码级测试的基本理念与方法
26 | 深入浅出之静态测试方法
27 | 深入浅出之动态测试方法
性能测试篇 (7讲)
28 | 带你一起解读不同视角的软件性能与性能指标
29 | 聊聊性能测试的基本方法与应用领域
30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介
31 | 工欲善其事必先利其器:前端性能测试工具原理与行业常用工具简介
32 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(上)
33 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(下)
34 | 站在巨人的肩膀:企业级实际性能测试案例与经验分享
测试数据准备篇 (4讲)
35 | 如何准备测试数据?
36 | 浅谈测试数据的痛点
37 | 测试数据的“银弹”- 统一测试数据平台(上)
38 | 测试数据的“银弹”- 统一测试数据平台(下)
测试基础架构篇 (4讲)
39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?
40 | 从小工到专家:聊聊测试执行环境的架构设计(上)
41 | 从小工到专家:聊聊测试执行环境的架构设计(下)
42 | 实战:大型全球化电商的测试基础架构设计
测试新技术篇 (5讲)
43 | 发挥人的潜能:探索式测试
44 | 测试先行:测试驱动开发(TDD)
45 | 打蛇打七寸:精准测试
46 | 安全第一:渗透测试
47 | 用机器设计测试用例:基于模型的测试
测试人员的互联网架构核心知识篇 (5讲)
48 | 优秀的测试工程师为什么要懂大型网站的架构设计?
49 | 深入浅出网站高性能架构设计
50 | 深入浅出网站高可用架构设计
51 | 深入浅出网站伸缩性架构设计
52 | 深入浅出网站可扩展性架构设计
特别放送篇 (8讲)
测试专栏特别放送 | 答疑解惑第一期
测试专栏特别放送 | 答疑解惑第二期
测试专栏特别放送 | 答疑解惑第三期
测试专栏特别放送 | 答疑解惑第四期
测试专栏特别放送 | 答疑解惑第五期
测试专栏特别放送 | 答疑解惑第六期
测试专栏特别放送 | 答疑解惑第七期
测试专栏特别放送 | 浅谈全链路压测
测一测 (1讲)
测一测 | 这些软件测试题目,你都掌握了吗?
结束语 (1讲)
结束语 | 不是结束,而是开始
软件测试52讲
登录|注册

23 | 知其然知其所以然:聊聊API自动化测试框架的前世今生

茹炳晟 2018-08-20
你好,我是茹炳晟,今天我和你分享的主题是“知其然知其所以然:聊聊 API 自动化测试框架的前世今生”。
在上一篇文章中,我以一个简单的 Restful API 为例,分别介绍了 cURL 和 Postman 的使用方法,相信你已经对 API 测试有个感性认识了。
但是,我们不能仅仅停留在感性认识的层面,还需要熟悉并掌握这些测试方法,完成相应的 API 测试工作。所以,也就有了我今天分享的主题,希望可以通过对 API 自动化测试框架发展的介绍,让你理解 API 测试是如何一步一步地发展成今天的样子,以“知其所以然”的方式加深你对 API 自动化测试的理解。
接下来,我将会遵循由简入繁的原则,为你介绍 API 测试框架,以发现问题然后解决问题的思路为主线,展开今天的分享。

早期的基于 Postman 的 API 测试

早期的 API 测试,往往都是通过类似 Postman 的工具完成的。但是,由于这类工具都是基于界面操作的,所以有以下两个问题亟待解决:
当需要频繁执行大量的测试用例时,基于界面的 API 测试就显得有些笨拙;
基于界面操作的测试难以与 CI/CD 流水线集成。
所以,我们迫切需要一套可以基于命令行执行的 API 测试方案。这样,API 测试可以直接通过命令行发起,与 CI/CD 流水线的整合也就方便得多了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(27)

  • Martin 龚平
    用postman转python或者java测试脚本还是太慢了,而且需要一定编程技能,感觉已经是上一代了,我现在根据httprunner的yml的脚本规则,加上一些开源的组件,做了一个web页面可以进行代理抓包,测试人员无论从web页面还是app操作只要设置代理过来,就可以看到自己的所有请求,然后选择想自动化的请求,后台自动转成测试脚本,再在管理界面上通过拖拽等性质组装成自动化测试集,并可以执行调试、定时任务等。这样的自动化程度基本对编程技能降到了最低,而且生成测试脚本的成本比上一代低了很多

    作者回复: 非常好的实践,其实这个我们也有在做,基于httprunner基本没有代码工作量,全部基于yaml或json的配置,而且就像你说的是通过har直接转换json或者yaml,结合locust还可以直接做性能测试。

    2018-09-07
    26
  • Cynthia🌸
    感觉本篇对我最有用的,就是Response结果发生变化时的自动识别这块啊!自己在项目中遇到过类似的问题,虽然采取了一定的措施,但是没有想到作者这个解决方案。准备顺着作者的思路捋一捋,看看把他具体实现一下。

    作者回复: 哈哈,这的确是个很好的方法,非常值得落地

    2018-08-21
    8
  • sylan215
    确实,Postman 作为自测工具或者开发之间的接口对接,还是很方便的,但是涉及批量每日回归执行,或者同一个接口的多参数验证等,稍微有点不方便,这应该也是那么的代码级 API 测试框架出现的原因吧。
    相对于自动生成 API 测试代码,我更倾向于配置文件的方式,毕竟通过工具把 JSON 转换为自己需要的格式,说到底也是配置文件而已,只是还要增加一个转换的过程。
    Response 结果发生变化时的自动识别,这个很赞,也给我提供了一些思路,目前我都是只校验不变的部分,这样会有覆盖不全的情况,后面我也会考虑这种自适应的实现。

    以上,欢迎沟通交流,公众号「sylan215」

    2018-08-20
    6
  • 楚耳
    我觉得老师对api的测试都是基于单个api的测试,我是做P2P这块的,公司的api执行后都会去操作数据库,操作各种表,api调用后,需要验证的是各表的字段是否修改正确,这个才是我们验证的重点,我想如果业务复杂的api基本都是跟数据库关联很大,Response的返回值验证都是次要的了。所以我觉得老师这个api测试的讲解不够深入
    2019-03-22
    4
  • 不错的葱
    老师请教两个问题:
    1.做api测试时,是否有必要对数据库做验证?比如测试添加接口,添加成功后是否需要逐一验证数据库字段是否正确;再比如,测试获取详情接口,是否需要把接口的返回和数据库中数据做对比验证。
    2.引入数据驱动后,对于不同的输入,验证的步骤相差很大。比如:可能有的输入直接验证responseCode即可,而有的输入需要验证更多字段。这种情况应该如何处理呢?由于这个问题,我这里没有使用数据驱动,而是不同的数据写了不同的用例。
    2018-12-19
    3
  • zhangliqun
    老师,接口自动化测试我看过robotframeworker接口自动化框架,老师RF框架和您讲的有差异呢?

    作者回复: 不同的工具间都有差异,但是本质的东西是一样的

    2018-12-26
    2
  • 楚耳
    老师 能具体讲下在框架中如何实现 可以灵活支持多个 API 的顺序调用,方便数据在多个 API 之间传递

    ,即上一个 API 调用返回结果中的某个字段值可以作为后续 API 调用的输入参数 这个需求吗 讲下设计思路
    2018-09-13
    2
  • 静静张
    老师你好,基于配置文件的api测试,和将数据外化到文件是一回事吗?

    作者回复: 不是一回事,基于配置的api测试,是不需要写任何代码的,测试用例本身就是配置文件,api框架会去解析配置文件并发起调用,典型的框架是httprunner

    2018-08-25
    2
  • 颜瑞
    在框架的选择上,茹老师也提了一个开放性问题,Rest-Assured和HttpRunner哪个更合适。其实我也一直在犹豫,自己封装接口,对各个产品线上测试人员有编码的能力要求,另外框架的开发还是需要一定工作量的,HttpRunner少了这些编码成本。HttpRunner还没开始用,疑惑点在于数据准备和环境清理能否在这个框架里面实现,考虑到一些数据准备需要插表,是不是从扩展性和兼容性上讲,企业还是自己开发一套API测试框架的好?茹老师有什么建议么?
    2018-10-24
    1
  • Gz
    自己搞了个 Python的api测试框架 基于yml配置的 随着业务改变框架功能 用起来还是挺好的 只是测试效率 不是特别高 由于自己写的 集成在 Jenkins 上也还好 总之 有轮子用轮子 不符合自己再改造就好
    2019-10-21
  • 辰九
    locust+httprunner,可以试一试
    2019-06-20
  • 口水窝
    以前有用过locust,但不知道什么原理,就知道能压测,今天查了下可以和httprunner完美组合,先记下来,后面实践。

    作者回复: 值得一试,学习成本是很低的

    2019-04-12
  • 口水窝
    有了理论支持,后续每个阶段的工具都实践起来!
    2019-04-11
  • yudi5158
    response结果变化的自动识别,我目前项目使用了大量的json schema验证 效果还不错
    2019-03-30
  • 🐶 🐶
    使用httprunner做API自动化测试时,数据准备这块需要额外开发吗?
    2019-02-14
  • johnny
    老师将的逻辑结构严谨、清晰,能够由简入繁,既有实操,又有解决思路,赞。
    2019-01-17
  • 阿森
    有了api自动化集成测试平台,还要代码生成工具有啥用,restassured其实也是在httpclient上封装的,他不仅能发请求,还能断言
    2018-12-01
  • 农夫山泉
    问下老师,现在用python3写接口自动化,用哪个框架最好
    2018-10-29
  • 小老鼠
    在中小型公司有无必要引入了response 变化工具吗
    2018-10-27
  • Robert小七
    现在项目都是手工测试,如何将手工测试和接口测试相结合?也就是测试同学既要做手工也要做自动化如何开展!
    2018-10-25
收起评论
27
返回
顶部