current position:Home>Self-learning interface automation test

Self-learning interface automation test

2022-09-23 10:02:20bigbear_001

         Chengdu this is only the population to meet the standard“一线城市”,Salary and job requirements do not match,Also asking for a lot,就算是这样,Still going to fight,to go to work,Where is the comfort?Maybe it really is to solve the food and clothing first,After all, it has been from70kg掉到了58kg,If it goes on like this, it will really lose weight.Next, let's add some brain storage.

        This summary is(一)接口自动化测试-基础知识,纯理论,Kind of boring,But it's a solid foundation.


CSDN话题挑战赛第2期

参赛话题:学习笔记


目    录


        一、基础知识回顾

        1、网络体系结构

        (1)定义

        网络体系结构(network architecture):It is the level at which computers communicate with each other,And a collection of protocols in each layer and interfaces between layers.

        (2)层级

        物理层(PhysicalLayer)

        数据链路层(DataLinkLayer)

        网络层(Network layer)

        传输层(Transport layer)

        会话层(Session layer)

        表示层(Presentation layer)

        应用层(Application layer)

        (3)Common network architectures

        TCP/IP(传输控制协议/互联协议)---四层

        OSI/RM(开放系统互连参考模型)---七层

        五层协议的体系结构

        2、TCP/IPNetwork architecture layers and protocols at each layer

        (1)应用层

        主要工作:定义数据格式并按照对应的格式解读数据.

        HTTP(超文本传输协议,明文,TCP端口:80

        HTTPS(超文本传输安全协议,SSL/TLS加密,TCP端口:443

        FTP(文件传输协议,TCP数据/控制端口:20(不一定)/21

        POP3(邮局协议版本3,收发,TCP端口:110

        IMAP/SMTP(交互邮件访问协议/简单邮件传输协议,TCP端口:143/25

        DNS(域名系统,UDP端口:53

        SNMP(简单网络管理协议,UDP代理/Management station port:161/162

        Telnet(远程登录协议,TCP端口:23

        (2)传输层

        主要工作:定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性.

        TCP(传输控制协议:面向连接、可靠、传输大量数据、慢,电子邮件、远程登录)

        UDP(用户数据报协议:无连接、不可靠、传输少量数据、快,Watch the video on the website、听音乐)

        (3)网络层

        主要工作:定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由.

        IP协议(IP地址(32位)分为两部分:前面部分代表网络地址(IPThe address and subnet mask are obtained by bitwise ANDing),后面部分表示该主机在局域网中的地址)

        ARP协议(地址解析协议:根据IP地址获取MAC地址的一个网络层协议)

        路由协议(According to channel conditions,选择并设定路由,以最佳路径来转发数据包)

        (4)网络接口层

        主要工作:对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方.

        3、JSON(JavaScript Object Notation)

        (1)JavaScript对象表示法;轻量级的文本数据交换格式;独立于语言和平台; 具有自我描述性、更易理解;使用JavaScript语法来描述数据对象;The parsers and libraries support different programming languages.

        (2)特点

        纯文本

        自我描述性

        层级结构-值中存在值

        通过JavaScript解析

        AJAX传输

        (3)语法规则

        数据在键值对中

        逗号分隔

        花括号保存对象

        方括号保存数组

        (4)JSON文件的文件类型

        .json

        (5)JSON文本的MIME类型

        application/json


        二、接口测试概述

        1、Compare with functional testing at the interface

        (1)There is no specific page for interface testing;

        (2)通过接口规范文档上的调用地址、请求参数,拼接请求信息;

        (3)然后发送请求、检查返回结果;

        (4)Just measure the input and output parameters.

        2、接口测试好处

        (1)The discoverable page action cannot be discoveredbug;

        (2)检查系统的异常处理能力;

        (3)检查系统的安全性、稳定性;

        (4)前端随便变,good interface,后端不用变.

        3、定义

        (1)接口

        一种是程序内部的接口,Such as calls between modules,方法与方法之间,Calls between frontend and backend.The other is the external interface of the system,Such as calling a third-party platform,Call the open source interface.

        (2)API(Application Program Interface)

        The calling interface of the system or program

        (3)GUI(Graphic User Interface)

        Graphical interface to the system interface of the operating software

        (4)接口测试

        测试系统内部各个组件间接口,以及系统与外部系统之间的交互点.

        4、流程

需求文档(接口API文档)→Understand interface-related business scenarios→Interface use case design and review→Interface testing and results

        5、Common interface types

        (1)webService接口

        走soap协议通过http传输,请求报文和返回报文都是xml格式的,When we test, we can only call it through tools、测试.

        可以使用的工具有SoapUI、jmeter、loadrunner等;

        (2)http api接口

        走http协议,Calls are distinguished by path的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式.

        可以使用的工具有postman、RESTClient、jmeter、loadrunner等;

        (3)开放API

        Develop your own system interface standards,当需要执行系统整合、When custom or program application operation,All members of the company can call source code through this interface standard.

        6、接口测试重点

        (1)检查数据的交换

        (2)传递和控制管理过程

        (3)系The mutual logical dependencies between systems

        7、接口测试范围

         (1)业务功能测试

        正常场景

        异常场景

        (2)边界值测试

        业务规则边界分析

        输入输出参数边界分析:Override all required parameters;组合可选参数;参数有、无或null;参数的顺序、个数、类型;参数类型数值大小,The range of values ​​to enter;Parameter string typenull 长度;参数包含特殊字符;Argument contains spaces

        (3)参数组合测试

        Multi-parameter combination test

        Fewer parameter combination tests

        (4)异常场景测试

        幂等(重复提交)

        并发测试

        事务测试

        分布式测试

        环境异常测试

        大数据量测试

        Service unavailable for testing

        (5)性能测试

        Pay attention to the various performance indicators:响应时间、并发数、吞吐量、每秒事务处理量TPS、输入/输出IO、Hardware resource usage(CPU,硬盘,内存,网络)

        (6)安全测试

        敏感信息是否加密(前后端数据传输、日志信息)

        SQL注入

        Send red packets in bulk

        8、Applicable scenarios for interface testing

        (1)应用于多系统间交互开发

        (2)The underlying framework system and central service system for submitting services to other systems

        (3)The service layer interface in the upper system


        三、Interface testing prerequisites

        1、接口测试的必要条件

        (1)接口说明(作用功能)

        (2)接口调用url(uniform resource locator统一资源定位服务)方式

        (3)接口请求方法(get/post)

        (4)接口请求参数、参数类型、请求参数说明

        (5)返回参数说明

        2、标准和规范的接口文档

        (1)v2EX社区API:V2EX API

        (2)Baidu translation is universalAPI:百度翻译开放平台 (baidu.com)

        (3)JD Alliance Open Platform:开放平台 - 京东联盟 (jd.com)

        (4)支付宝支付API:支付宝开放平台 - 能力中心 (alipay.com)

        (5)腾讯开放平台:腾讯开放平台beta|开放成就梦想 (tencent.com)

        3、如何获取接口信息

        (1)标准化的接口文档

        (2)询问开发人员

        (3)测试人员自己抓包获取数据和信息


        四、接口测试必备知识

        1、常见的接口传输协议

        (1)http/https(超文本传输协议)(应用层)

        (2)ftp(文件传输协议)(应用层)

        (3)jdbc(数据传输标准,javaConnect to database standards)

        2、常见的接口测试工具

        (1)Google浏览器

        (2)Firefox浏览器

        (3)POSTMAN(Simulate sending interface request tool,只能做基于http)

        (4)apache JMeter(Simulate sending interface request tool)

        (5)Telerik Fiddler(抓包工具)

        3、常见的接口数据组织形式

        (1)HTML

        HyperText Markup Language,是一种用于创建网页的标准标记语言.

        (2)JSON(用的较多)

        JavaScript Object Notation,JS对象简谱,是一种轻量级的数据交换格式.

        (3)String

        (4)XML

        可扩展标记语言.


        五、接口测试用例设计

        1、用例设计方法(通用)

        (1)等价类、边界值(接口传输的数据)

        (2)因果图(在需求文档中,The expected result is known)、判定表(全部组合)

        (3)正交实验法(部分组合)

        (4)场景法(正常环境、异常环境)

        (5)错误猜测法(经验、直觉)

        (6)随机测试(monkey)

        2、接口测试用例模板

        (1)用例名称、接口地址、请求方式、开始(sql)、结束(sql)、描述

        (2)HTTP头参数、HTTP参数、JSON参数、状态码、返回结果(包含)、Whether the database query exists(包含)


         五、HTTP协议

        1、HTTP协议基础

        (1)HTTP协议(Hyper Text Transfer Protocol,超文本传输协议);用于从WWW(万维网Worl Wide Web)服务器传输超文本到本地浏览器的传送协议.

        (2)HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等).

        (3)HTTP协议工作于客户端-服务端(C/S)架构上.浏览器作为HTTP客户端通过URL向HTTP服务端(即WEB服务器:Apache、IIS)发送所有请求.

        (4)HTTPThe server according to the received request,向客户端发送响应.

        (5)HTTP协议特点

        无连接(The request and response may not be online at the same time)

        媒体独立(The data in the transfer process is independent of the communication protocol,It is only necessary for both parties to identify the data)

        无状态(The request is re-responded,Regardless of whether it responds)

        (6)HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道.在HTTP基础上加了SSL协议(Authenticate server identity by certificate,Provides communication encryption)

        (6)HTTP/HTTPS区别

        HTTPS需要CA证书、需要交费;

        HTTPS具有安全性的SSL加密传输协议;

        完全不同的连接方式,端口不一样80/443;

        HTTPS是HTTP+SSL加密传输、身份认证.

        2、HTTP请求及其结构

        (1)HTTP请求的组成

        请求行(request line)

        请求头(header)

        空行

        请求数据

        (2)HTTP请求方法

        GET:请求指定的页面信息,并返回实体主体.

        POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件).数据被包含在请求体中.POSTRequests may result in the creation of new resources or the modification of existing resources.

        HEAD:类似于GET请求,只不过返回的响应中没有具体内容,用于获取报头.

        OPTIONS:允许客户端查看服务器的性能.

        PUT:从客户端向服务器传送的数据取代指定的文档的内容.

        DELETE:请求服务器删除指定的页面.

        TRACE:回显服务器收到的请求,主要用于测试或诊断.

        CONNECT:HTTP1.1协议中预留给能够将连接改为管道方式的代理服务器.

        (3)Requests库常用函数

        requests.request() #构造一个请求,支持以下各种方法

        requests.get() #获取html的主要方法(至少有一个参数-接口地址、有返回值的方法.The return value is the server response result of this request)

        requests.post() #向html网页提交post请求的方法

        requests.head() #获取html头部信息的主要方法

        requests.put() #向html提交put请求的方法

        requests.patch() #向html提交局部修改的请求

        requests.delete() #向html提交删除请求

        (4)Response常用属性

        r.status_code #http请求的返回状态,若为200则表示请求成功

        r.text #http响应内容的字符串形式,即返回的页面内容

        r.recoding #从http header中猜测的相应内容编码方式

        r.rapparent_encoding #How the response content is encoded at parsing from the content(备选)

        r.content #http响应内容的二进制形式

        (5)Requests用于接口测试

1、不带参数的GET请求

(1)发送不带参数的GET请求requests.get("url")

(2)Get and output various response values

2、带参数的GET请求

(1)发送带参数的GET请求requests.get("url", params=params)

(2)Get and output various response values

3、带参数的POST请求

(1)发送带参数的POST请求requests.get("url", data=params)(等同于以字典的形式提交form表单数据)

(2)Get and output various response values

4、The response result is converted toJSON格式

response.json()等同于json.loads(response.text)

        3、HTTP响应及其结构

        (1)HTTP响应的组成

        状态行

        消息报头

        空行

        响应正文

        (2)HTTP响应头信息

        Allow:服务器支持哪些请求方法(如GET、POST等).

        Content-Encoding:文档的编码(EnCode)方法.只有在解码之后才可以得到        Content-Type头指定的内容类型.

        Content-Length:表示内容长度.只有当浏览器使用持久HTTP连接时才需要这个数据.

        Content-Type:表示后面的文档属于什么MIME类型.Servlet默认为text/plain,但通常需要显式地指定为text/html .由于经常要设置Content-Type,因此HttpservletResponse提供了一个专用的方法setContentType.

        Date:当前的GMT时间.你可以用SetDateHeader来设置这个头以避免转换时间格式的麻烦.

        Expires:应该在什么时候认为文档已经过期,从而不再缓存它?

        WWW-Authenticate:客户应该在Authorization头中提供什么类型的授权信息.在包含401(Unauthorized)状态行的应答中这个头是必需的.

        Last-Modified:文档的最后改动时间.客户可以通过If-MOdified-SinCe 请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304 (Not Modified)状态.

        Location:表示客户应当到哪里去提取文档.Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302.

        Refresh:表示浏览器应该在多少时间之后刷新文档,以秒计.注意Refresh 的意义是“N秒之后刷新本页面或访问指定页面”,而不是“每隔N秒刷新本页面或访问指定页面”.

        Server:服务器名字.由Web服务器自己设置.

        Set-Cookie:设置和页面关联的Cookie.

        (3)HTTP响应状态码

        响应信息头(server header)→HTTP状态码(HTTP Status Code)

        1**:信息,服务器收到请求,需要请求者继续执行操作

        2**:成功,操作被成功接收并处理

200:请求成功.一般用于GET与P0ST请求

        3**:重定向,需要进一步的操作以完成请求

304:未修改,所请求的资源未修改,服务器返回此状态码时,不会返回任何资源.客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

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

404:服务器无法根据客户端的请求找到资源(网页)

        5**:服务器错误,服务器在处理请求的过程中发生了错误

500:服务器内部错误,无法完成请求


        May you and I all contribute to the great rejuvenation of the Chinese nation,Let the roots of Chinese culture be rooted in the green mountains and clear waters of China,Let the new generation of Chinese sons and daughters inherit and carry forward!!!

---无名之辈


The above contents are all self-taught,Of course there is content published online,如有冒犯,请留言,立即改正,谢谢!


        After reading it, if you think it is useful to you,Move your golden one-finger right index finger,Click your left mouse button,Upvote at the corresponding location,Or leave your best words in the comment area,Or add it to your favorites,It's not too late to go!You said you want it or not!Thank you for your reading and appreciation!

copyright notice
author[bigbear_001],Please bring the original link to reprint, thank you.
https://en.chowdera.com/2022/266/202209230957303895.html

Random recommended