资讯动态

python-接口自动化测试-基础知识(一)

发布时间:2026/9/28 5:03:08 来源:尧图企业网站定制
关于接口自动化测试相关的理论知识, 以及对应框架的源代码内容, 第一部分需要解答的问题是究竟什么是接口测试, 另外一部分需要分析的是为什么要实施接口测试, 其中第一个小问题是对于接口测试这一概念的定义阐释。接口测试, 它实际上就是一种测试系统组件间接口的方式。这种测试, 主要用来检测外部系统与系统之间, 还有内部各个子系统之间的交互点。我们测试的重点, 是要检查数据的交换。我们要检查数据的传递。我们还要检查数据的管理过程。同时, 我们还要关注系统间的相互逻辑依赖关系等这些方面。通常在一般的情况下, 人们提到测试接口, 所指向的内容往往包含了对于接口的功能性的验证、对于接口的性能进行评估以及对于接口的稳定性进行检测, 同时也可能涵盖了对于安全性的相关测试, 在大多数的日常讨论中, 大家所听到的接口这个概念, 通常特指那些基于HTTP或者是HTTPS这两种协议而构建的接口的测试工作, 这些测试具体表现为对各种形式的web服务请求进行审查与分析, 在一个软件项目的整体开发环境中。存在数量很多的接口, 数量少的地方能有几十个, 数量多的时候能达到几百个甚至上千个。在这个时候, 我们没有软件界面, 没有具体的测试场景, 手里头只有一个接口描述文档。我们需要把这个像接口这样抽象的东西, 通过软件测试的理论和方法去对接口进行测试, 然后找出接口的功能缺陷和安全性的缺陷。接口包括内部接口和外部接口, 内部的接口就是开发人员进行自我开发的接口。所谓外部接口, 这就像是咱们那个网站, 去调用微信支付这个接口的操作, 还包括, 去调用支付宝支付接口的那些情况。还有, 那些个不同模块与不同模块之间相互进行对接时使用的接口部分这一条内容, 是【转至 北京宏哥】那里提到的信息。2、很多人都在问, 究竟为什么要开展接口测试这项工作。1、目前, 有很多系统在前后端架构设计上选择了分离模式。这是因为前端和后端各自的工作进度存在差异, 所以我们需要针对最初开发出来的接口进行软件测试与数据验证工作。另外, 还需要对涉及调用其他公司提供的某些特定接口的情形进行测试, 比如银行、支付宝、微信、QQ等外部平台提供的接口服务。从安全的角度来分析, 仅依靠前端界面来进行限制措施的做法已经不能完全满足现代计算机系统对于安全性的要求, 因为攻击者容易绕过前端直接发起请求。所以必须要求后端程序也必须实施相应的控制策略。基于这种情况, 我们就必须要从接口的层面上展开严格的校验工作。在这种情况下, 就需要从接口层面来实施验证。前后端进行数据传输时的信息、日志打印的信息等, 检查它们是否采用了加密传输的方式, 这也是需要验证的内容。尤其是那些涉及到用户隐私信息的部分, 比如身份证号码、银行卡信息等。这里提到的【转至 北京宏哥】。2、现在的系统变得越来越复杂性很大, 传统的依靠前端测试这种做法已经使得效率大幅度降低。当前我们在大力推崇测试前移, 这种行为也被称为测试左移。我们的核心想法是希望测试团队能够尽早地参与进来。采取接口测试就是其中一种实现更早介入手段。以传统测试作为例子, 在这种模式当中必须先等待前端和后端两部分工作内容全部完成之后, 才可以正式开启测试环节。只有在这个基础上, 才能够启动自动化代码编写工作。如果是做接口测试的话, 只要前后端把接口定义清楚了, 自动化工具就可以进场去写接口自动化的测试代码了。在手工测试这块儿, 因为后端代码完成了就能进行测试, 它就不需要等到前端的工作都做完了才动手, 只专注于后端逻辑的验证就行了。这段内容【转至 北京宏哥】。二、接口测试的流程1、接口测试的流程接口测试也是被归类在功能测试这个范畴里面的,所以说它跟我们以前做的那些功能测试的流程, 实际上并没有特别大的差异。咱们的那个测试流程, 还是老样子依然是这样的。a.这是关于测试接口的具体文档内容, 也就是大家所说的需求说明书部分。b.你可以直接根据接口的文档来写测试用例, 具体编写时完全参考以前的老规矩就可以, 比如使用等价类划分以及边界值这些常见的测试设计方法来进行编写。c. 我们先把这活儿给执行了, 去瞅瞅那些有着不同参数的请求, 再看看接口那边反回来的数据, 瞧瞧他们能不能够如愿以偿地达成大家原本指望的那个标准。接口测试和功能测试是一样的, 流程也大致遵守V模型。在一般情况下, 针对接口测试流程中处于左侧位置的每一个实施阶段, 不同的企业机构所关注的核心内容往往是存在差异的, 举例来说并非所有公司都会将需求分析与需求评审环节纳入到工作范畴之内, 然而无论情况如何变化, 关于测试用例的设计这回事, 是绝对无法被省略掉的一个必要步骤, 它属于极为关键的部分, 同时也是一段需要投入大量时间精力的过程, 唯有确保接口测试用例的内容能够达到全面覆盖的水平才会在最终产生较为理想的接口测试覆盖率结果, 从而使得更多的接口缺陷得以被发现和暴露出来, 这样一来随着项目的不断推进其接口整体的稳定状态才会得到进一步的提升与巩固。2、为什么要写测试用例a.把思路理清楚, 从而避免发生漏掉测试的情况, 也要防止出现重复进行测试的状况。b.提高测试效率c.要对测试的进度情况持续地进行跟进。d.告诉领导做过e.跟进重复性工作f.实现对问题的更好的记录, 实现发现问题的能力, 实现还原问题重现场景。3、关于接口测试设计的相关要点。咱们得先看看四个方面, 一个是功能, 一个是逻辑业务, 再一个是异常, 最后还有一个安全, 主要就是通过这四个维度来搞接口用例的设计。功能检查一下那个功能是不是能够正常使用。功能是否按照接口文档实现关于这个业务里面的逻辑部分。需要看这种操作是不是必须依靠具体的业务逻辑。例如, 在调用某个接口之前, 必须要先成功完成登录动作。要是没有经过登录环节就直接去获取数据, 这就不符合既定的业务规则要求了。异常参数的情况出现了异常, 同时数据的情况也出现了异常。出现了异常的情况, 具体表现为关键字参数没有值, 参数过多, 参数过少, 或者是参数值不正确。数据出现异常的现象: 关键字相关的数据部分显示为空, 数据的长度不一致, 还存在错误的数据。安全如果有本事是可以获取数据的, 假设不带返回任何信息的话, 那就说明存在问题的。正常的接口会带着信息, 然后删除看看是否能返回数据。唯一识别码是一种标识, 它专门针对苹果应用商店里的手机来使用, 通常情况下, 这样的号码是被设定为独一无二的。以上测试理论均转至博客园 北京-宏哥三、接口自动化-的应用1、简介如果你想拿接口来搞测试, 那么我们第一步就是得去了解一下那些必须掌握、并且需要去学一学的模块。它就是的那个第三方模块。虽然它内部存在可以访问网络资源的模块, 然而在实际操作中会感到较为繁琐, 此外还不具备诸多具有实际价值的高级功能。所以呢, 更好的方案是使用它, 它也是目前应用最广泛、最方便、功能最强大的一个第三方库。它主要是被用来对URL地址所包含的这类资源进行处理。的中文官网的英文官网你要是感兴趣的话, 可以去找找看, 它这里存在许多那些能够直接拿过来就用的、档次比较高的功能。2、安装a.用户是采用pip来进行安装的操作。pip install requests倘若你察觉到下载过程比较缓慢的情况的话, 那么请去配置相应的国内镜像来开展接下来的下载任务操作。pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpleb.开始进行安装, 并且正式地使用。步骤1步骤2步骤3进行到第四步这个阶段。3、-发送get请求importrequests#请求的url以小望之家的以id查企业接口为例url enterpriseId410417#header信息header {Access-Token:6693dfed-bbbf-4163-9e59-e21a19ec7195,Accept:application/json, text/plain, */*,}#使用requests发送get请求r requests.get(urlurl, headersheader)#以text格式打印出参print(r.text)#以json格式打印出参print(r.json())4、-发送post请求importrequests#请求的url以小望之家的获取企业列表为例url #header信息header {Access-Token:6693dfed-bbbf-4163-9e59-e21a19ec7195,Accept:application/json, text/plain, */*,}#请求入参json {enterpriseName:,current: 1,size: 10}#使用requests发送post请求r requests.post(urlurl, headersheader, jsonjson)#以text格式打印出参print(r.text)#以json格式打印出参print(r.json())5、的其他应用返回的是状态码, 具体的值是 #响应状态码。当响应体是以字节方式呈现的时候, 系统将会自行对其进行解码操作, 并且还会处理gzip这种压缩格式下的相关内容。这是一个用来存储服务器响应头的字典对象, 但是它有着一个比较特殊的性质, 就是这个字典里面的键是不区分大小写的, 如果我们去查找一个不存在的键的话, 它就会返回 None。调用r.json这个方法, 它里面内置的JSON解码器, 它的方便之处还在于, 对于像JSON这样的特定类型的响应数据, 你可以直接去获取结果。-- r.url # 获取 url关于编码格式的指定部分使用的是r和符号井号这样的形式代表编码格式, 该设定可以自动探测编码的方式。首先, 我们需要将请求设置为获取方式。返回原始响应体的是r.raw属性, 而字符串方式的响应体是通过r.text获取的, 它会依据响应头部的字符编码自动完成解码操作。当发生失败请求, 也就是说响应状态码不是 200 的时候, 会抛出异常。四、关于接口自动化技术在实际场景中的具体应用方面, 第一部分的内容是对其进行简要介绍。做 Java 开发的朋友, 大部分应该都晓得平常用的单元测试框架 Junit 以及另外那个框架。系统内部还配备了测试单元框架, 其功能角色大体上可以被视为Junit的相对应替代品。在内部包含的单元测试框架, 除了前面提到的那个之外, 还存在另外一个专门的测试框架。这个额外的框架在实际应用当中的使用频率是非常低的, 属于那种比较少被采用的工具类别。这次的主要内容是告诉大家, 单元测试框架它不只能用在单元测试的地方, 也能用到自动化测试用例的编写和执行上面来的, 这个测试框架是可以把测试用例组织起来去执行的, 这一点是要说的。并且提供给了丰富的断言办法, 用来判断测试用例是否通过了测试, 最后生成测试结果。查看其中文官网英文官网安装方法跟之前提到的内容是一样的, 因此我们不再进行详细的描述了。2、的简单应用结构代码#导入unittestimportunittest#定义一个测试类并集成unittest.TestCase这个类classTestCase01(unittest.TestCase):#类装饰器作用为在用例开始前先执行此函数classmethoddefsetUpClass(cls):print(case类开始执行)#类装饰器作用为在用例结束后执行此函数classmethoddeftearDownClass(cls):print(case类执行结束)#每条用例开始前执行此函数defsetUp(self):print(case开始执行)#每条用例结束后执行此函数deftearDown(self):print(case执行结束)#测试用例1deftest_01(self):print(case1)#测试用例2deftest_02(self):print(case2)#测试用例3deftest_03(self):print(case3)#测试用例4deftest_04(self):print(case4)if__name____main__:#运行用例unittest.main()运行结果分析

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑