python+pytest接口自动化-接口测试基础,http协议基础(一)

      最后更新:2022-06-27 18:56:38 手机定位技术交流文章

      目录

      前言:

      文章的结尾给每个人留下了很多好处。

      接口定义

      接口分类

      常见接口

      测试分层

      测试左移和右移

      总结

      HTTP协议简介

      HTTP协议特点

      HTTP接口请求方法

      HTTP与HTTPPS之间的区别

      许多老六位采访者都喜欢问这个大问题,所以让我们在这儿做个小注释。

      HTTP与TCP/IP之间的区别

      HTTP请求过程

      总结

      重点:学习信息学习当然与信息有关,在此我们为您准备了600G学习信息

      项目实战

      大型电商项目

      完整的软件测试自动化测试教学视频

      下载300G课程资料[视频课程+PPT+项目源]

      完整的软件测试自动化测试大型工厂测试

      python自动化测试++完整的模板+性能测试

      前言:

      许多朋友和叔叔说,如果你能写一套完整的自动化测试教程,说明如何将接口自动化应用到一个细胞的核上

      行!!!谁使你成为所有叔叔的粉丝,哈哈哈。当然,学习是一个渐进的过程。这是从一开始就写的,这也使得了解和从不受过良好教育的朋友学习更容易。后续技术的深度和范围将逐渐增加,不要被你的基本朋友打扰。以后还有许多事情要学习。不要直接在干货上说一个字.

      文章的结尾给每个人留下了很多好处。

      接口定义

      一般来说,我们所说的接口是API,什么是API,百度的定义如下:

      API(Application Programming Interface,应用程序接口)是一些预定义的接口(如功能、HTTP接口),或指协议连接软件系统的不同组件。提供应用程序和开发者访问特定软件或硬件的实例集,而又无需访问源码,或了解内部工作机制的细节。

      这是一个有点模糊的,但我们来看看下面的定义关键字:预定义的接口(如函数、HTTP接口),基于软件或硬件的访问,没有访问源代码,没有理解内部工作机制,你可能会理解。

      举例说明:

      1. 在计算机或手机上提供各种物理硬件接口,例如: USB接口, 充电接口, 耳机接口, 麦克风接口等.这些不同的接口具有不同的功能,例如,您可以通过插入USB端口进入U磁盘复制数据,插入耳机接口听音乐,我们不必担心这些接口的工作原理,只有通过这些接口才能满足我们的使用需求。

      2. 如欲查询中国气象网的一个城市天气,输入城市名称,你可以了解相应的城市天气。查询背后的实质也叫网站后端接口获取数据,这里的接口是Web服务软件接口.用户不需要担心网站后面如何查询数据,你只需要得到返回的结果。

      接口分类

      软件接口分类有许多方面,类型更难定义,而且经常会混淆。

      该接口使用的不同的协议可以分类如下:

      • 使用HTTP协议的HTTP接口

      • 使用肥皂的网页服务接口

      • 使用TCP和UDP协议的WebSocket接口

      • 使用杜博协议的杜博接口

      当然,使用不同的协议的分类并不严格,例如肥皂协议也是基于HTTP的包, Dubbo协议也是基于TCP协议的,所以这个分类仅供参考。

      不同的界面设计风格可以分类如下:

      • RPC是基于TCP/IP协议的远程程序调用协议。

      • REST是一个基于HTTP协议的代表状态传输接口

      关于这两个风格的具体内容,这里没有太多的解释,感兴趣的学生可以自行搜索信息。

      常见接口

      接口测试是用于接口的校正测试。在测试过程中经常遇到的接口是HTTP和Dubbo,两者都比较如下(如果你弄错了,请纠正注释):

      目前,公司大多数接口测试都针对HTTP接口。

      例如,当我们登录到TesterHome网站时,我们输入用户名、密码,并点击网页上的“登录”按钮,网页要求一个登录接口(HTTP接口),以启动向服务器的登录请求。

      如果您输入一个用户名或错误,登录接口(签入)将返回错误如下:

      输入正确的用户名和密码,检查登录界面,成功登录并跳到主页,如下:

      通过例子,我们对客户与服务端之间的数据交互如何形成接口的粗略印象。

      测试分层

      软件测试通常分为三个层次的金字塔模型,从上到下:用户界面测试、接口测试和单元测试。

      至于项目质量问题,不是每个层次的金字塔都能够被替换,我们通常倾向于把我们的测试更多地集中在UI测试上,但这往往无法满足测试的系统质量,以及测试接口(单元测试通常由开发者做)。

      接口测试的必要性和优点如下:

      • 接口测试越接近底部,底部问题的发现越早,解决成本越低。

      • 与UI测试相比,界面测试更容易检测隐藏的后端错误。

      • 在前端分离的设计模式中,很容易绕过前端来篡改或伪造数据请求接口,因此有必要测试接口的异常处理能力和安全性。

      • 在连接的情况下,必须对接口的稳定性进行性能测试,否则它很容易引起系统问题。

      • 与单元测试相比,界面测试更接近用户使用场景和较低的输入成本。

      • 与UI测试相比,界面测试可以实现自动化测试,降低维护成本和提高效率。

      测试左移和右移

      近年来,测试行业越来越多地提到了测试中的左翼和右翼转变,它们的定义如下。

      测试左移

      测试左移 ,也就是说,在拟议的测试之前,让测试在测试的一部分中干预。比如,在建筑设计阶段或发展阶段,测试人员介入并开始考虑产品的测试性,并管理开发自测等。此外,测试可以进一步扩展到要求评估阶段,让测试人员不仅了解要求,我们还评估需求的质量。

      测试右移

      例如,在产品上市后,测试人员可以进行在线检查。 此外,在产品上市后,测试人员仍需注意现场的情况,发现问题需要及时追踪,会影响到最低水平。

      测试的左转和右转是为了提高控制项目的质量,无论左转还是右转,在实践中,对接口质量的关注仍然是重点。

      总结

      针对当前市场需求和软件测试招聘趋势,接口测试是测试人员必须掌握的技能,而接口自动化测试是工资杠杆。

      在工作过程中,更多的接口被测试为HTTP协议,下面的博客也针对HTTP类型的接口。

      HTTP协议简介

      HyperText Transfer Protocol(HTTP)是互联网上最广泛使用的网络协议,所有 WW 文档必须符合这个标准。

      HTTP的设计最初的目的是提供一种发布和接收HTML页面的方法。HTTP协议属于OSI模型中的应用程序层协议。应用程序层协议包括FTP、SMTP、DNS、RIP和Telnet。

      HTTP协议适用于客户端-服务器架构,其中一个浏览器或APP通过URL作为HTTP客户端向HTTP服务器(即Web服务器)发送请求,服务器将超文本转移到本地浏览器。

      • 超文本

        我们在浏览器中看到的是网页的超文本分析,网页源代码是一系列HTML代码,它包含一系列标签,例如, img显示图像,p指定显示段落等,浏览器分析这些标签后,它形成了我们通常看到的网络,这个网页的源代码, HTML, 可以称为超级文本.

        例如,当我们在Chrome浏览器中打开一页并右击“查看源代码”时,这些源代码是超级文本。

      • URL

        URL 即Uniform Resource Locator(统一资源定位器)正如每个家庭都有一个卡地址,每个网页都有一个互联网地址(例如:www.baidu.com() 当您在浏览器地址框中输入URL或点击超链接时,URL决定了浏览地址。 浏览器通过超文本传输协议(HTTP)将Web代码从Web服务器上的网站提取并将其转换成网页。

      HTTP协议特点

      • 无连接

        限制每个连接只处理一个请求。 服务完成处理客户端请求并接收客户端响应后,连接被切断。

      • 无状态

        HTTP协议是一个无状态协议。无状态意味着协议没有处理事务的内存容量。如果服务器不需要以前的信息,那么它的反应会更快。但缺乏地位意味着,如果后续行动需要事先的资料,则它必须重传,这可能导致每次连接时发送的数据数量增加,此时可以设置缓存。

      • 媒体独立

        只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。

      HTTP接口请求方法

      HTTP请求中最常见的请求方法是GET和 POST。

      • GET用于获取资源信息,即在数据库中执行查询操作而不影响数据库本身的数据,例如Baidu输入 pytest查询、查询订单状态等。

      • POST用于修改服务器上的资源,即数据库中对数据库本身的数据影响的操作,例如用户登记、登录、提出评论、发布、修改密码等。

      下面我们以理由解释这两个请求之间的区别。

      • 案例1-GET请求

        在浏览器中输入URLhttps://www.baidu.com/s?wd=pytest回到汽车,这实际上是 Baidu搜索 pytest关键字。 URL包含请求的参数信息,其中参数wd是搜索关键字。

        查询字符串参数选项可以在浏览器中被视作请求参数。 当启动GET请求时,参数以查询字符串参数的形式传递。?下一个字符串是它的请求参数,多个请求参数是&作为分隔符,如https://www.baidu.com/s?wd=pytest&ie=utf-8

      • 案例2-POST请求

        通常,当一个网站登录时,它需要提交一个用户名密码,它包含敏感信息,如果使用GET方法请求,密码将暴露在URL中,导致密码泄露,所以最好是通过 POST发送。

        例如,如果您登录TestHome,您可以看到请求URL中没有请求参数,请求参数的用户名和密码被发送在表格数据的形式(除了这个请求形式),如下图所示:

      GET和 POST请求参数的格式(即格式)将在下文详细描述。

      除了常用的GET和 POST请求之外,还有几个请求方法,如PUT、 DELETE、HEAD等,这些方法的总结如下:

      注意,许多公司直接使用 POST请求方法来取代PUT方法修改资源和 DELETE方法删除资源。

      HTTP与HTTPPS之间的区别

      许多老六位采访者都喜欢问这个大问题,所以让我们在这儿做个小注释。

      当你浏览网站时,你可以透过浏览器地址栏看到一些网站以http(如http://www.weather.com.cn一些则以 https 开始(例如:https://www.baidu.com/两者之间的区别是什么?

      首先我们需要理解HTTP协议包含HTTP协议,但HTTP也有自己的特性。

      HTTPS的正式名称是Hyper Text Transfer Protocol over Secure Socket Layer,即在HTTP下添加SSLSecure Sockets Layer是HTTP的安全性版本。

      通过HTTPS传输的内容通过SSL加密。SSL的主要功能可以分为两个:

      • 建立信息安全渠道,确保数据传输的安全.

      • 确认网站的认证。 任何使用 https 的网站,可以通过点击浏览器地址栏的锁标或通过 CA 机构发出的安全签名查询网站的认证。

      HTTP 和 HTTPS 之间 的 区别 概述 如下 :

      • HTTP信息被明确地传输,安全性差;HTTPPS信息被通过安全可靠的SSL加密传输。

      • 使用HTTPS协议需要CA(Certificate Authority)申请证书,这通常是较低的费用,因此需要一定的成本。

      • 默认端口是不同的,HTTP是80,HTTPPS是443。

      • HTTP页面的响应比HTTPS更快,主要是因为HTTP使用TCP为三个握手建立连接,而HTTPS增加了9个握手,除了TCP之外,共有12个握手。

      • HTTPS实际上是一个基于SSL/TLS的HTTP协议,而SSL包含了消耗CPU资源的安全算法,因此HTTPS比HTTP更昂贵的服务器资源。

      HTTP与TCP/IP之间的区别

      TCP/IP协议和HTTP协议经常出现在面试或工作场所。这里是两者之间的区别的简要说明。

      TCP/IP协议是主要处理数据在网络上传输的方式的传输层协议,而HTTP是一个主要处理数据包装的方式的应用程序层协议。

      关于TCP/IP和HTTP协议之间的关系,网络的介绍相对容易理解:“当我们传输数据时,只能使用TCP/IP协议(传输层),但是那样的话,如果没有应用层,无法识别数据内容,如果你想使你发送的数据有意义,必须使用应用程序层协议,应用层协议有很多,例如HTTP、FTP、TELNET等,还可以定义自己的应用程序层协议。WEB使用HTTP协议作为应用程序层协议,加密HTTP文本信息,然后用TCP/IP作为层级协议发送到网络中。

      HTTP请求过程

      在浏览器中输入网址https://www.baidu.com?wd=pytest在回到汽车后,浏览器将打开相应的页面。 这个过程是,浏览器发送一个消息到网站所在的服务器上Request,即请求,网站服务器收到此Request然后进行处理和分析,然后返回相应的Response即,答复,然后将它发送回浏览器,Response它包含了页面的源代码,等等,然后浏览器分析并呈现页面。

      以请求https://www.baidu.com?wd=pytest为例,打开F12抓包,如图所示:

      我们可以在菜单栏上做下列:tab在网页上查看主请求信息:

      • 在请求标题信息的标题中,这些包括General(例如url、方法、状态代码等基本信息), Respose Headers(响应头)和Request Header(请求头)。

      • 在负荷表中输入一个特定的请求。

      • 预览和重置都用于响应内容,但两者的显示格式不同。

      其他诸如Initiator、Timeing、Cookie等不做很多解释,任何有兴趣的人都可以独自探索。

      Request

      请求由客户端发送到服务端。 请求可以分为四个部分:

      • Request URL

        请求URL,统一资源定位器,使用URL来确定我们想要请求的资源。 例如: https://ww.Baidu.com?wd=pytest

      • Request Method

        请求方法已经引入。

      • Request Headers

        请求标题用于显示服务器需要使用的额外信息。更重要的信息是Cookie、Referer、User-Agent等。一般的请求标题信息如下:

        • Accept,请求的标题域,用于指定客户端可以接受哪些类型的信息。

        • Accept-Encoding,指定客户端可以接受的内容编码。

        • Accept-Language指定客户端可以接受的语言类型。

        • 主机用于指定请求资源的主机IP和端口编号,其中的内容是请求URL的原始服务器或门户的位置。 HTTP 1 自版本1开始时,请求必须包含此内容。

        • cookie,也称为多个形式的cookie,由网站本地存储,以识别用户和跟踪会议。cookie的主要功能是维持当前访问对话。

        • 该内容用于识别请求来自哪个页面,服务器可以获取这些信息并相应处理,例如源数据、防盗链处理等。

        • 内容类型Internet Media Type互联网媒体类型也被称作MIME类型。在HTTP在协议标题中,使用它来显示特定请求中的媒体类型信息。application/x-www-form-urlencoded表示表单数据,text/html代表HTML格式,application/json代表json类型。

        • 用户代理(User-Agent),又称UA,是一个允许服务器识别操作系统和版本、浏览器和客户端使用的版本等信息的特殊字符串。

      • Request Body

        即请求体,一般用于POST在请求中,提交给服务器的数据类型的主要定义是POST接口的请求参数。GET对于请求,因为请求参数直接在URL中,所以Request Body则为空。

        如上图所示,可以在Payload中查看GET请求的请求参数以及POST请求的Request Body

      Response

      答复,即答复,从服务器返回到客户端。 答复可以分为三个部分:

      • Response Status Code

        • 1**,信息类型,服务器收到请求,要求请求者继续运行。

        • 2**, 成功类型, 请求获得成功, 理解和处理.

        • 3**, 重新 分配, 需要 进行 进一步 操作 完成 请求 。

        • 4**,客户端错误,请求包含语法错误或无法完成请求。

        • 在处理请求时发生服务器错误

        国家共同法则如下:

      • Response Headers

        响应头包含服务器对请求的响应信息,如内容类型、服务器、设置Cookie等。常见的响应头信息如下:

        • 内容编码(Content-Encoding),指定响应内容的编码。

        • 日期, 确定响应生成的时间.

        • 最后修改,指定资源的最后修改时间。

        • 设置Cookie 响应项中设置Cookie告诉浏览器在下次请求载入Cookie的内容时,它需要将该内容放在Cookie中。

        • Expires,指定响应的期限,用于控制代理服务器或浏览器是否将内容更新到缓存中,再访问时直接从缓存中 लोड,减少服务器负载,缩短装载时间。

        • Content-Type,文档类型,指定返回的数据类型,如果文本/html代表返回HTML文档,application/x-javascript代表JavaScript文件返回,图像/jpeg表示图像的返回。

      • Response Body

        例如,如果请求网页,其响应体是网页的HTML代码;如果请求图片,其响应体是图片的二进制数据。

        如上图所示,可以在PreviewRespose中查看响应体内容。

      总结

      理解HTTP协议是良好的接口测试的前提和基础。

      HTTP和HTTPPS的区别是什么,以及OSI七层模型的哪个层分别属于HTTP和TCP/IP,经常在面试中被问。

      因为范叔父现在也是值班,所以写书可能没有太多时间,但至少我保证你写一篇不会一天被扭曲的作品!

      重点:学习信息学习当然与信息有关,在此我们为您准备了600G学习信息

      首先,你必须注意它。 首先,你必须注意它。

      怀疑:为什么你必须首先注意? 答:因为你没有注意你写的,你看不见

      项目实战

      应用项目,银行项目,医疗项目,电子产品,金融

      大型电商项目

      完整的软件测试自动化测试教学视频

      下载300G课程资料[视频课程+PPT+项目源]

      完整的软件测试自动化测试大型工厂测试

      python自动化测试++完整的模板+性能测试

      我听说关于我和三个铁汁链的工资上涨太高了哦!!

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/28635.html

          热门文章

          文章分类