热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于软件测试|Python接口自动化那些事【项目实操】

没错,接下来我们就通过一些项目实操来进一步理解接口测试:首先接口测试是基于协议的黑盒测试,在进行接口自动化之前。所以我们首先不得不来看看一个最简单的接口长什么样,然后怎么来测试一个

关于软件测试|Python接口自动化那些事【项目实操】

没错,接下来我们就通过一些项目实操来进一步理解接口测试:

首先接口测试是基于协议的黑盒测试,在进行接口自动化之前。所以我们首先不得不来看看一个最简单的接口什么样,然后怎么来测试一个接口,校验接口的响应值。就如同我们的功能测试一样,所有基于界面的功能UI自动化也是在功能测试完成之后进行的,大多数用于回归测试。由于历史原因,一般刚开始接触接口测试,一般是基于测试工具,比如接口调试神奇postman,开发和测试都用它来调试和测试接口。

那么问题来了,我需要测试接口,那接口信息从哪里获取呢?

常用的有三种方式:

1.通过抓包工具比如fiddle,charles获取接口信息

2.通过浏览器开发者工具,networks查看接口请求信息

3.当然最直接和最靠谱的就是接口文档,这就是接口的需求文档。一个规范的接口文档最基本的应该包含了(接口请求地址,请求方法,请求头信息说明,接口入参说明(包括参数的类型、是否必填、长度范围等),接口响应示例等)。

 

当然现在很多公司没有接口文档,但是接口的重要性我这里就不累赘了,这个时候我个人认为测试人员应该主动提出来,开发需要编写接口文档,在测试工作中不能太被动。

这里演示部分的接口是我本地用Flask搭建的mockserve,需要搭建的朋友可以加QQ群 1079636098 我在群里有不明白的问题也可以在群里提出来。


实例一:demo

接口信息:

地址 :127.0.0.1:5000/api/demo

GET类型

参数为limit 非必填 ,表示获取数据限制

我们打开postman,请求demo接口,如图所示:

这个demo接口由于可以不填任何参数,和请求头部信息,所以操作非常简洁,输入接口地址,选择接口请求方法,点击send直接请求成功,或者接口的响应状态码,和响应值。那如果get请求有参数怎么请求呢?如图所示:

 

 

在Params中以键值对的形式填写参数,大家发现这个时候接口响应值里面的info字段只有一条数据信息了,那当然limit为2时,就返回2条数据。细心的朋友可能已经发现get接口的参数直接拼接在url后面,如:127.0.0.1:5000/api/demo?,get接口也可以直接在浏览器中请求,获取响应值

下面我们通过一个实例2306查询车次信息接口来理解我们之前讲到的接口请求头信息中的COOKIE


实例二:通过浏览器开发者工具获取接口地址,请求方法,参数,响应值等如图所示:

然后像实例一在postman里面输入接口地址和参数,发送请求,却发现,请求失败了,小朋友,你是否有很多问号:

 

那为什么在网页中这个接口请求没有问题,到postman里面来就失败了。其实当web开发人员去向后端请求这个接口的时候,会把浏览器把一些站信息,用户的登录状态,用户的浏览习惯等通过Request Headers中的COOKIE传给后端,但是postman不会。那我就在postman里面模拟添加请求头信息(头信息在浏览器中可以获取),如图所示:

果然就请求成功了,是不是有点意思,通过俩个get接口实例,理解接口测试和COOKIE。那么接下来我们看一个post类型的接口,顺便理解一下常见的token,这也是面试常问的一个问题,问到接口鉴权如何测试


实例三:login

接口信息:地址127.0.0.1:5000/api/login POST类型

参数 username 表示登录用户名

密码 password 表示登录密码

Content-Type:application/json

如图所示:

post接口首先选择Body参数,再输入参数发送请求。我们可以看到登录接口如果请求成功了,就返回了一个token,就像身份证ID,每个人都有都是唯一的。该token就是这个人员的通行证。

token鉴权,简单来说,就是要不要登录,一般来说,一个系统的所有接口都需要鉴权才能请求,换句话说先要请求这个系统的登录接口,拿到服务端响应认证,才能去请求其它接口,一般放在请求头headers或者body参数里面。如果请求其它接口没有传token就会提示无权限访问或者未登录

OK,我们已经对常用的get和post掌握了,那当然还有其它很多类型的接口测试,比如delete,put等,还有入参为form-data类型的接口,比如文件上传接口,还有不同协议的接口,比如webservice等,我们都需要通过实例去了解。当理解了各种类型的接口测试之后,我们就可以进行接口自动化了,得到一套落地有效的接口自动化测试方案,可以根据实际测试需求自主封装搭建适合项目的测试框架。

 

-END-

 

关注我!后面可以聊一聊自动化测试框架。


推荐阅读
  • 如何在 Angular 4 中实现跨域调用百度人脸识别 API? ... [详细]
  • 本课程详细介绍了如何使用Python Flask框架从零开始构建鱼书应用,涵盖高级编程技巧和实战项目。通过视频教学,学员将学习到Flask的高效用法,包括数据库事务处理和书籍交易模型的实现。特别感谢AI资源网提供的课程下载支持。 ... [详细]
  • 在前一篇文章中,我们介绍了如何使用Requests库发送GET请求。本文将深入探讨如何通过Requests库发送POST请求,包括参数格式、请求封装等关键技巧,并通过“历史上的今天”API实例进行详细说明。 ... [详细]
  • 谈起RESTFUL大家未免都耳熟能详,但是要介绍一下它是什么,可能就是停留在听过或者见过的阶段了。一贯喜欢以通俗的语言来消化知识的小马自然不会放过它了& ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 本文详细解析了微信服务端示例类的功能与应用。其中,`ClientResponseHandler` 类主要用于处理微信支付所需的响应数据,而 `TenpayHttpClient` 则是对 HTTP 请求(包括 GET 和 POST 方法)进行了封装,以便在内部调用时更加便捷和高效。这些工具类在实际开发中起到了关键作用,开发者无需深入了解其底层实现细节,即可轻松集成微信支付功能。 ... [详细]
  • Sanic 是一个类似于 Flask 的 Python 3.5 Web 服务器,以其出色的写入速度而著称。与 Flask 不同,Sanic 支持异步请求处理,这使得它在处理高并发请求时表现更加出色。通过利用 Python 的异步特性,Sanic 能够显著提高应用程序的性能和响应能力,适用于构建高性能的异步 Web 应用。 ... [详细]
  • 深入解析 Vue 中的 Axios 请求库
    本文深入探讨了 Vue 中的 Axios 请求库,详细解析了其核心功能与使用方法。Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js 环境。文章首先介绍了 Axios 的基本概念,随后通过具体示例展示了如何在 Vue 项目中集成和使用 Axios 进行数据请求。无论你是初学者还是有经验的开发者,本文都能为你解决 Vue.js 相关问题提供有价值的参考。 ... [详细]
  • 通过优化模板消息机制,本研究提出了一种高效的信息化推送方案。该方案利用获取的访问令牌(access token)和指定的模板ID,实现了精准且快速的信息推送,显著提升了用户体验和信息传递效率。具体实现中,通过调用相关API接口,确保了消息的准确性和及时性,为用户提供更加便捷的服务。 ... [详细]
  • Cookie是一种小型数据文件,由Web服务器生成并存储在用户的浏览器中。当用户再次访问同一服务器时,这些数据可以被重新读取,为用户提供个性化的体验。Cookie在软件测试中具有重要作用,能够帮助测试人员验证会话管理、用户偏好设置等功能的正确性和安全性。通过深入解析Cookie的工作原理及其在不同场景下的应用,本文旨在为软件测试人员提供全面的技术指导。 ... [详细]
  • 接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对 ... [详细]
  • Postman工具使用教程
    Postman的基础功能1.GET请求GET请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上,所以,GET请求的请求头与请求参数如在接口文档中无特别 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
author-avatar
zjjj-jz政
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有