基于Python的接口自动化-HTTP接口基本组成和网页构成

news2025/1/11 21:58:52

目录

引言

1、HTTP简介

2、HTTP原理和网页基础

     2.1、 HTTP基本原理

     2.2、 HTTP请求过程

2.3、 网页构成

【自动化测试工程师学习路线】


引言

在我们进行接口测试时,了解HTTP接口的基本组成和网页构成是非常重要的。

而Python作为一门功能强大、易学易用的编程语言,也提供了许多实用的工具来帮助我们进行接口自动化测试。

如果你还没有掌握Python的接口自动化测试技能,那么这篇文章一定会为你提供很多有用的信息和知识。让我们一起来看看吧!

1、HTTP简介

        HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。可以具体查看百度百科或者菜鸟教程关于HTTP协议的介绍,菜鸟教程http学习地址:HTTP/HTTPS 简介 | 菜鸟教程,简单点理解就是HTTP是一个属于应用层的面向对象的无状态的协议,HTTP协议工作于客户端-服务端架构为上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端返回响应信息。

2、HTTP原理和网页基础

     2.1、 HTTP基本原理

       在我们访问一个网页站点时,首先都是在浏览器输入一段URL,然后才能访问该网站。什么是URL?URL全称是:Universal Resource Locator,即统一资源定位符,可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。包括了访问的协议http(https)、访问路径和资源名称、端口号等,如https://www.baidu.com。

HTTP全称:Hyper Text Transfer Protocol,中文译为超文本传输协议。HTTP协议用于从网络传输超文本数据到本地浏览器,并保证高效而准确地传送超文本文档,而HTML源代码就是一种超文本标记语言。该协议是由万维网和互联网工作小组联合制定的,目前广泛使用的版本是HTTP1.1。除了HTTP外还有HTTPS,就是HTTP的安全版,通过HTTPS传输的内容都是经过SSL加密的,保证数据传输的安全。如我们购票用的网站:https://www.12306.cn/,就是这样的站点。

     2.2、 HTTP请求过程

        我们在浏览器输入一个URL站点,回车后正常就能在浏览器中看到网站页面内容。实际上,这个过程是浏览器向所在的服务器发送了一个请求,告诉服务器需要请求什么东西,服务器收到请求后进行处理和解析这个请求,如果处理解析这个请求OK,那么就返回给浏览器对应的响应。响应中包含了页面的源代码等内容,浏览器再对响应中的源代码进行解析,最后将解析后的网页呈现出来。其大概过程就是:浏览器请求》服务器处理解析》服务器响应并传给浏览器》浏览器解析呈现网页。

下面通过实际的网络站点,学习HTTP请求和响应的过程,以及过程中都发生了怎样的网络请求。以Chrome浏览器访问百度站点:https://www.baidu.com/为例。

 打开Chrome浏览器,鼠标右键菜单选择【检查】或者直接快捷键【F12】打开开发者工具,切换到【Network】。在浏览器中输入百度站点:https://www.baidu.com/,回车后,看看发生的网络请求。如下图:

 

 其中第一条网络请求:www.baidu.com,就是浏览器向百度服务器发送的一条请求访问百度站点的请求,点击这个请求,即可看到请求的详细信息和内容。

首先是General部分,描述了请求的URL、请求的方法、响应状态码以及远程服务器的地址和端口;

在往下,就是Response Headers和Request Headers,分别是响应头和请求头。包含了响应和请求的部分相关信息和内容,下面具体看看这个请求和对应的响应都哪些内容。

请求的组成

请求由客户端即浏览器向服务端发送,发送的请求有4个方面的内容:请求方法(Request Method)、请求的站点(Request  URL)、请求头(Request  Headers)、请求体(Request Body)

1.请求的方法

常见的请求有get,post,put...类型。get类型的接口一般是指获取信息的接口,比如列表查询的功能,点击查询按钮就调用一个get接口,然后把信息返回出来。就是指把内容从服务器(后端)拉下来。Post类型一般是提交表单的功能,比如注册、导入数据之类的就是post接口。就是指把内容推到服务器(后端)上去。

2.请求的站点

请求的网站,就是在浏览器输入的一段URL网址

3.请求头

请求头用来说明服务端使用的附件信息,也就是HTTP协议规定的附加内容,必须按照协议规则办事。如下图访问百度站点的请求头信息:

 

 看看请求头信息的相关字段说明

Accept:请求报头域,用来指定客户端可接受哪些类型的信息,如上图可以接受text/html等类型的信息

Accept-Encoding和Accept-Language:指定客户端可接受的编码和语言

Connection:连接状态

Cookie:存储的Cookie信息,主要用于维持当前会话

Host:需要访问的站点地址

User-Agent:用于向服务端识别客户使用的操作系统和浏览器版本等信息

4.请求体

请求体一般是承载着POST类型请求的表单数据,一般封装在请求body中使用json格式的数据来发送,GET类型的请求体一般为空。

响应的组成

响应由服务端返回给浏览器的信息,响应的内容有3个方面:响应状态码(Response Status Code)、响应头(Response Headers)和响应体(Response Body)

1.响应状态码

响应状态码表示服务器对于请求信息的处理结果,如200表示响应正常、404表示页面未找到、500表示服务器出错等

 2.响应头

响应头包含了服务端对请求的应答信息,如下图的响应头信息:

 

看看响应头相关关键字段说明

Content-Type:文档类型,指定返回的文档是什么,如text/html表示返回的是HTML文档

Server:服务器的信息,如服务器名称、版本等

Set-Cookie:设置Cookie

Expires:指定响应的过期时间

3.响应体

一般是处理客户端方式的HTTP接口请求后,需要返回给客户端的信息,如大多数的响应boby是封装成JSON格式的数据信息返回到客户端

2.3、 网页构成

       现代化的网页呈现给我们的总是绚丽多彩的,有着丰富的视觉感受,不同网页上面往往有着诸多各式各样样子,并搭配合理的排版、丰富的图片、动画效果等。那么这些网页是怎么构成的?构成网页主要有三大部分:HTML、CSS、JavaScript,其中HTML构成了网页的基础架构,CSS确定了网页的排版样式,JavaScript决定了网页的可塑造性和动态呈现。下面具体看看这三大部分:

1.HTML

HTML:全称Hyper Text Markup Language,即超文本标记语言。网页上的文字、段落、图片、按钮等元素就是由HTML定义,如img标签表示图片,p标签表示段落等等,在Chrome浏览器打开百度站点,右击鼠标菜单中选择【检查】或者直接【F12】打开开发者工具在【Elements】选项栏就可以看到网页的HTML源代码,如下图:

 

可以看到网页HTML源代码,每个标签对定义了一个节点和节点的属性,他们构成了一个HTML树。这些节点标签对陈列在HTML树中,它们存在的一定的层级关系,常用父节点、子节点和同级节点表示。具体对于HTML的学习,可以参考W3School网站学习:http://www.w3school.com.cn/html/index.asp

2.CSS

CSS:全称Cascading Style Sheets,即层叠样式表。CSS用来确定网页页面的排版样式的标准,指定了网页中文字的大小、颜色、位置等属性。如下图定位到【百度一下】这个按钮,查看样式:

 

该CSS样式确定该按钮的width、height,即宽和高的像素大小,以及文字颜色color:white等信息,按钮背景色:backgroud

3.JavaScript

JavaScript就是JS,一种脚本语言,用来将JS文件嵌入到HTML代码中提供交互式的动态效果,如提示框、轮播图、下载进度条等等。其在HTML的标签对是由script标签对来定义

综上所述,HTML定义了网页的内容和结构,CSS则描述了网页元素的布局渲染和位置效果,JavaScript定义了网页的交互性和动画效果,这三个构成了丰富网页呈现的基础架构。

在学习了解HTTP请求接口以及网页基本构成后,对于HTTP协议的接口有了明确认知后我们再进行基于HTTP的接口自动化测试


如果你也在往自动化测试开发方向发展,在适当的年龄,选择适当的岗位,将自己的优势都发挥出来!

我的自动化测试之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和收集总结,所以,我和朋友特意花了一段时间整理编写了下面的《自动化测试工程师学习路线》,也整理了不少【网盘资源】,需要的朋友可以点击文末小卡片获取网盘链接。希望会给你带来帮助和方向。

【自动化测试工程师学习路线】

1、自动化测试必备Python编程内容

2、Web UI 自动化测试基础内容
在这里插入图片描述
3、Web UI 自动化测试实战内容

4、APP UI 自动化测试基础内容

5、APP UI 自动化测试实战内容

6、API 接口自动化测试基础内容

7、API 接口自动化测试实战内容
在这里插入图片描述
8、CI/CD持续集成专项技术

在这里插入图片描述
9、自动化测试框架实战技术

上面就是我为大家整理出来的一自动化测试工程师发展方向知识架构体系图。希望大家能照着这个体系在3-4个月完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

需要完整学习路线的大纲和学习视频教程的可以【留言:软件测试学习】或是点击下方小卡片进群领取就好啦

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊美国站 解压神器减压小玩具CPC认证

解压玩具又称减压玩具Relaxing toys,包括挤压、摔砸、揉捏、旋转等多种类型,主要供成年人使用,帮助释放压力。 当提到解压玩具时,通常指的是一类旨在缓解压力、放松心情的小型玩具。以下是几种常见的解压玩具及其简要介绍&#x…

一键开启GPT 平行时空模式

不知道大家日常使用GPT的时候,在一次会话中是如何完成同类任务的对话的? 简单点来说,假设你已经完成了角色设定,比如你设定GPT是一名文案编辑,那么接下来你会多次给它提交稿件让它进行编辑,那么在多次提交的时候&…

基于jsp+mysql+Spring+mybatis+VUE的SpringBoot电影院会员积分管理系统

运行环境: 最好是java jdk 1.8,我在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本 tomcat服务器环…

【剑指offer专项突破版】数组篇——“C“

文章目录 前言一 . 排序数组中两个数字的和题目分析思路分析法①代码——双指针法②代码——二分查找 二. 数组中和为 0 的三个数题目分析问题转换代码 三. 和大于等于 target 的最短子数组题目分析思路分析代码 四. 乘积小于 K 的子数组题目分析思路分析代码 五. 和为 k 的子数…

2023 年前端 Web 发展趋势

虽然就个人观点,我觉得 Web 开发在最近几年都没什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又出现了一些新的技术。在本文中,我想跟大家聊聊自己看到的最新 Web 开发的发展趋势。相信这波浪潮会继续激发…

PLC采集串口被占用、网口被占用,网络IP地址不能修改、多台设备IP不同网段等问题解决方案

在我们数据采集项目中,经常碰到端口被串口被触摸屏占用,网口被占用,修改IP增加风险,另外增加新的端口需要通过PLC的编程软件组态,涉及到上传下载PLC程序,耗时耗力很不方便。以下是我们总结的项目中解决办法…

JVM-对象布局

JVM中对象布局 通过引入JOL工具&#xff0c;查看对象在JVM中的布局。 <dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.14</version></dependency>对象的在JVM中的基本信息 普通…

iconfont字体的引用

官网&#xff1a;giconfont-阿里巴巴矢量图标库iconfont-国内功能很强大且图标内容很丰富的矢量图标库&#xff0c;提供矢量图标下载、在线存储、格式转换等功能。阿里巴巴体验团队倾力打造&#xff0c;设计和前端开发的便捷工具https://www.iconfont.cn/1. 搜索图标&#xff0…

【正点原子STM32连载】 第三十章 ADC实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第三十…

2023最新项目管理软件排行榜!快来了解各大品牌优缺点

项目管理是一个复杂而又多样化的过程。在这个过程中&#xff0c;管理者需要处理大量的信息&#xff0c;规划资源&#xff0c;分配任务和监督进展。为了更好地管理项目&#xff0c;许多企业和组织开始采用项目管理软件。这些软件不仅可以帮助管理者更好地处理信息&#xff0c;还…

让你不再疑惑怎么转换音频格式

你是否有过这样的经历&#xff1f;听到了一首喜欢的歌曲&#xff0c;但是只能在特定的平台或设备上播放&#xff0c;因为它只存在于视频网站或某个应用程序中。或者你想要将一首歌曲作为铃声或者用于其他用途&#xff0c;但是音频文件的格式却不被平台所支持。这是&#xff0c;…

3D数字孪生技术在水利工程上面的应用价值

"农功今可济,水利更毋隳。”水利作为国民经济稳定和谐的重要部分&#xff0c;运用科技化手段对水利项目进行管理&#xff0c;能完美契合智慧水利灾害管理与防治所需。深圳华锐视点利用数字孪生和三维可视化技术搭建的智慧水利可视化管理平台&#xff0c;通过web3d开发建模…

软考A计划-系统架构师-官方考试指定教程-(10/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

传统ERP软件如何SaaS化?

01 ERP和SaaS ERP概念 企业资源计划 (ERP) 系统是许多企业的主干&#xff0c;助力管理整个企业内的会计、采购流程、项目等。对于许多 IT 部门而言&#xff0c;ERP 系统通常意味着大型、昂贵且耗时的部署&#xff0c;并可能需要进行大量硬件或基础设施投资。然而&#xff0c;云…

【算法基础】拓扑排序及实战

一 、概览 这里涉及到图的概念&#xff0c;感兴趣的同学请移驾 –>图<– 下面还有两个相关概念&#xff0c;大概说一下&#xff1a; 1.1 有向无环图 定义&#xff1a;在图论中&#xff0c;如果一个有向图从任意顶点出发无法经过若干条边回到该点&#xff0c;则这个图是…

测试者必知—如何做Web测试?常见测试点总结

目录 前言&#xff1a; 一、Web应用程序 二、功能测试 三、易用性测试&#xff08;界面测试&#xff09; 四、兼容性测试 五、安全性测试 六、性能测试 前言&#xff1a; Web测试是指对基于Web技术的应用程序进行测试&#xff0c;以测试其功能、性能、安全和稳定性等方面的表…

C++使用boost::serialization进行序列化

废话 发现一个比较好玩的东西&#xff0c;boost::serialization序列化操作&#xff0c;简单来说感觉像ofstream和ifstream的升级版&#xff0c;Boost.Serialization 库能够将c项目中的对象转换为一序列的比特&#xff08;bytes&#xff09;&#xff0c;用来保存和加载还原对象…

PPT里的逆天功能之-PPT扣图(可以秒杀PS的扣图功能)

PPT的扣图功能秒杀PS PPT其实非常强大,它里面有数不甚数的功能是我们之前从未使用过的。比如说PPT的扣图功能。比如说我们有一个背景是灰黑的。 而我们网上可以下到的一些logo很多是带有底色的,它会和我们的背景形成很大的反差。此时我们往往就会用PS工具。这就会让大都IT们…

leetcode数据库题第四弹

leetcode数据库题第四弹 619. 只出现一次的最大数字620. 有趣的电影626. 换座位627. 变更性别1045. 买下所有产品的客户1050. 合作过至少三次的演员和导演1068. 产品销售分析 I1070. 产品销售分析 III1075. 项目员工 I1084. 销售分析III小结 619. 只出现一次的最大数字 https:/…

MySQL的JDBC编程详解

1.JDBC编程概念 在实际项目中&#xff0c;我们对于数据库的操作大部分是通过代码来完成的&#xff0c;各种数据库在开发的时候&#xff0c;都会提供一组编程接口API。所以不同公司使用不同的数据库软件&#xff0c;那么程序员学习成本是非常大的&#xff0c;因为要学习不同数据…