这是番外篇1, 标题是book-自动测试-番外篇-接口测试1。--辣么丑1.1概要大家好, 我是辣么丑, 《安卓app自动化测试》这个系列的文章目前已经更新了三个部分的内容了, 今天是来给大家发一个额外补充的番外篇章节, 主要内容是讲解那个接口API测试方面相关的事情。1.2 接口测试理论咱们先来认识一下接口是个什么东西, 以及什么又是接口测试。因为我的文章一贯都秉承着实战为主的原则, 所以对于那些理论性的概念, 我也尽量把它讲得通俗易懂。打个比方来说, 我对待接口的概念, 绝不会直接照抄纯理论的含义然后就完事了。好闲话说到这里, 我这里就举一个比较简单的例子, 通过这个例子来向你们说明白到底什么是接口, 以及我们这些做测试的人员, 究竟应该怎么样才能做好接口测试。比如说, 某个公司的一个网站有一个功能是用来查询一个城市的天气情况, 而这个公司也有对应的APP应用, 同样可以做城市的天气查询, 那么, 在程序实现上, 不会在网站开发一套天气查询功能, 手机短APP也去开发一套城市查询功能吧。讲到了这个程度, 相信大伙都已经清清楚楚了, 其实我们压根儿不需要在前台费劲巴拉地去做这件事, 我们的全部任务, 就是稳稳当当地在服务器那边把这个功能给开发出来, 而且只要我们的服务器, 能够真真切切地提供出一整套非常规整的方法, 好让那些在外界的形形色色的程序去调用和运用就好了, 无论是对应于那种通过网页浏览器去访问的web端还是手机端里面的各种app客户端, 你们只需要去安安稳稳地使用我们服务端已经给你准备好的一系列天气查询功能就可以了, 剩下的那部分工作, 就纯粹只是各个不同系统的前台界面该如何去把结果漂亮地展示给大家观看的问题了, 就是这么简单清晰。所以, 这里服务器端所提供的这一套方法, 实际上就是接口。如果把它说得更通俗一点, 那就是方法。只要知道了接口的地址以及参数是如何传递的, 任何知道这些信息的人都可以调用这个方法来获取天气情况。那么, 不妨接着深入思索一番, 平日里我们所开展的工作中的黑盒测试阶段, 其实际的操作表现形式, 难道不就等同于直接在网站平台或者是应用程序软件内部, 去切实执行与天气查询相关的那一部分功能逻辑吗?在此基础上, 依据所确定的具体功能模块, 然后再进一步地去细致考量关于如何编写测试用例的相关策略与方法。而接口测试就是在网站和app还未能完成前端的功能展示时, 我们提前针对天气查询这个功能做测试。和黑盒测试的区别就在于, 我们不是测试眼睛看到的实实在在的界面操作, 而是通过程序调取后台的方法即接口, 来完成测试这件事而已。那么说到我们的接口测试, 原则上来讲, 它和黑盒测试的测试思路是一样的, 在做黑盒测试的时候, 你需要去设计相关的测试用例, 所以在做接口测试时, 你也同样要去按照这样的方式去设计测试用例, 只是缺少了关于UI界面方面的测试内容。比如在做app端的测试这个工作的时候咱们是不是应该去设计一个案例, 这个案例的内容就是输入空内容, 拿这空内容去做天气查询, 然后看看咱们的app是怎么处理的。它究竟是弹出一个提示框, 明确提示说输入内容为空, 还是说对它不做任何反应。总之只要程序不会报错, 也不会崩溃, 就算通过了。然后接下来的问题是, 在具体做接口测试的时候, 具体该怎么做? 在接口传递参数的过程之中, 我们需要去设计一个案例, 这个案例是关于传递空字符串的。然后我们接着去检查服务所返回的内容到底是一个什么样的状态。是服务直接返回了400这样的报错信息。还是说服务返回了200来表示正常操作。如果是代表了正常的情况。我们还需要关注具体的返回内容究竟是什么样子。基于以上概述, 核心逻辑非常清晰, 那就是只要团队成员能够熟练掌握并扎实执行黑盒测试方法, 并且同时深刻理解接口的具体定义与运作原理, 那么关于“如何进行接口测试”这一操作层面的问题, 实际上也就迎刃而解, 不再构成任何实质性的障碍了。最后再来说说关于接口请求的事情, 这一般情况下总共有4种类型, 但是在我们的日常操作当中, 大家接触得最多的肯定就是POST和GET了。存在着两种方式, 其区别在于GET是不传递参数的请求, POST是需要传递参数的请求。1.3 实现的接口测试本节我们就进入接口测试的实战环节了。请原谅我在上一节说了很多话, 大家心里可能在想, 不是说好的要开始实战了吗, 哈哈。现在好了, 今天我将借助网络上现成的两个具备不同功能的接口, 来向大家讲解接口方面的应用技巧。其实我们公司内部也有自己的一套接口测试脚本, 但是那组脚本实在太难看了, 考虑到公司的面子问题, 我们决定还是采用其他的方式来进行演示。在进行接口测试工作的时候, 通常情况下, 开发人员需要提供给我们要进行验证的后台接口的详细说明文档, 也就是常说的接口文档, 然而我们今天所探讨的案例是从互联网上搜索得到的公开资料, 因此我会努力将每一个环节都描述得非常清楚, 确保细节能够被人们充分理解。首先我们先来看看这两个接口实现的功能第一个是大家能够把这个网址在浏览其中打开。这是一个进行天气查询的接口。第二个哈, 关于周公解梦这件事, 特此声明, 这里并不是在宣传迷信活动。实际上, 在此之前, 我还在自己的微信公众号平台里面成功实现了梦的功能解析。由于我已经唠叨了如此长的时间, 所以我打算直接呈现出一段代码, 以便让诸位能够对它形成一种直观上的感性认识。我们把页面上的那个东西点开, 如果从字面意思上去理解它所说的获取支持的城市这一概念, 那是显而易见的, 因为这其实就是一个用来查看系统到底支持哪些城市的接口方法。当我们把新页面滚动到最底部的地方, 就能看到下面这种画面里的内容。大家看到了没有, 前面所讲到过的GET, POST这个两个词就出现在这里了。我们先来详细看看关于GET的那一部分, 在它的介绍里面, 上面的那一行是说请求方面的情况, 而下面的那一部分则是说的服务器的返回结果方面的情况。如果你请求对了, 那么服务器会返回给你200 OK, 然后才是具体的结果。看看我们的代码中的内容#-*-:utf8-*-jsonurl;ret.(url)print ret.read()执行我们的脚本后看看打印的返回结果结果是, 输出的内容长度比较长, 这里只截取了开头的那少部分内容。看到这种输出结果, 就表示我们的接口请求已经完成并且成功获取到了支持的城市列表, 在城市名称后面的括号内就是与之对应的城市编码代码。现在我们回过头来查看脚本里面的具体代码实现过程。首先我们在代码文件里面通过导入操作把这个包给加载进来, 接着在后面就是通过调用来完成的整个接口访问流程, 其具体的执行逻辑其实非常简单, 仅仅包含了3行代码。先要把我们需要去访问的那个接口地址拼接在第一行, 那么现在我们不妨来具体看看这个接口地址究竟是怎么获取到的吧, 接着请大家回到我们的网页里面去, 并且找到关于GET方法的那块介绍内容。GET//.asmx/?/1.1Host:当然, 我们把地址链接起来, 就是主机部分加上请求部分里面的内容。在等号右边的位置是我们需要传递的参数, 这一点要和使用另一种方法提交的参数区分清楚。在这里, 参数是直接放在网络地址里面传送的。通常情况下, 问号之后的内容就是参数部分了。最后是具体我们要发送的数据内容。例如, 如果我们需要查询系统是否支持北京这个城市, 就把相应的部分替换成北京这个词。当然, 在我们的脚本里, 我们是没有传入任何参数的, 这也就表示我们传递的是一个空值。在接口的说明文档里头, 提到了一种情况, 具体的描述是这样的: “输入参数是代表指定的亚洲或者国内的某个省份的, 如果输入的是ALL这个字, 或者是空的, 那么就表示要返回全部的城市信息。”接着又说, “返回的数据形式是一个一维的字符串数组”。在这个数组里边, 每个元素的结构是由“城市名称”再加上一个括号, 括号里面装着“城市代码”这样的格式组成的。”如果我们实际上传递的参数确实是ALL, 或者压根就没有传参, 也就是空的话, 那么系统就会把全部的城市都返回给我们。因此, 如果我们是需要传递一个具体的城市名称的这一点的话, 像例如辣么丑所存在的那西安这样一个地方的话, 那么我们便是要用类似于以下的这样一种方式来去做书写与表达的。URL变量的值被设置为空字符串, 随后通过加号运算符连接一个经过编码处理的西安这个城市的名称, 该操作指定了所使用的字符集编码为UTF-8格式。执行以下看看结果返回的结果是正常的, 但是居然不支持我所在城市西安, 对此我只能予以谴责, 在这里我们应当把话题重新转向我们的接口测试方面, 就目前的情况来说, 我们在这一组接口上完成了两种不同类型的参数传递工作, 并且这些操作都产出了正常的结果。如果我们将这种情况放在实际的工作场景或者具体的项目里面去进行考量, 它是不是类似于我们正在执行的黑盒功能测试这样的操作呢? 如果你希望展开来讨论的话, 那么你可以把那些原本用于设计功能测试用例的思路与方法, 灵活地运用并移植到接口测试的工作上来。好了, 考虑到篇幅的限制, 我们目前只是实现了天气查询方面的一个接口的功能, 在接下来的《book--auto-test-番外篇-接口2》这个内容里面, 我会接着把上一篇的内容给延续下去, 进而把那个能够获取具体城市的天气预报的另外一个接口, 还有第二个关于解梦的接口, 这两个接口都给实现出来, 最后真心实意地感谢各位能够耐心地把这一篇文章读完完毕, 我的名字叫做辣么丑。
企业数字化 ERP 产品动态
相关推荐
企业选择哪些API聚合平台:2026年国内外八大平台全评测 企业该选哪些API聚合平台?2026年的一份全评测把市场切成"国际四强"与"国内四强"两条线,逐一给出结论。这份评测面向企业选型,覆盖模型覆盖、性能稳定、计价透明、合规结算与企业管理五个维度,本文整理其核心内… · 2026/9/27 22:54:08
Python入门:零基础3天学会办公自动化,工作效率翻倍 在二零二六年这个把效率追求达到极致的职场环境里面, 假设你依旧还在使用手动复制粘贴 Excel 表格的方式处理数据, 还在逐个修改 Word 文档名称这样操作, 那么这种行为真的就是在毫无意义地浪费生命时光。办公自动化这一项技术能力, 目前已经不再属于程序员群体所独有的专业技能… · 2026/9/27 22:54:08
1.3 Python网络运维自动化实践之路 5 多年来, 我一直关注着网络运维自动化领域的发展。虽然这个领域里的理论知识一直在不断更新。从业界主流的网络管理标准体系FCAPS, 一直到这些年跟着发展起来的这些新东西。但是一直没找到写网络运维自动化实战方面的书。直到我看到了这一本。我把这本书推荐给云计算领域或者网络… · 2026/9/27 22:54:02
天津建设网站需要的费用详细步骤 天津建设网站费用全解析:3个实战案例教你避坑 在天津找建站公司,最怕的就是报价单上写着“5000元”,最后结账变成了“2万5”。很多老板还没开工,心里就悬着一块石头: 找建站公司怕被坑高价 。别急,我整理了天津本地3个不同行业的 实战案例… · 2026/9/27 23:29:11
RKNN Toolkit2安装避坑指南:解决No module named rknn /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:11
Zotero 7安卓Pad同步全攻略:WebDAV配置与插件避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:05
5G分流比优化实战:从31%到89%的可复用路径 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:05
I2C总线400KHz扫描实战:USB转I2C适配器与Excel自动化记录 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:05
UFS3.1协议深度解析:从MIPI M-PHY到Write Booster实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:29:05
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01