The first week _ Interface manual test: basic knowledge of network, packet capture, Postman

table of Contents:

 

1. What is the interface

II. Network Fundamentals

Three. HTTP protocol

IV. What is interface testing

V. Fiddler's packet capture tools

Six. Postman use

 

1. What is the interface

Interface is a set of codes can provide services to other programs

Interface as a Service

Provide data or resources for other modules or UI

Interface is a way to provide access to program code

1. Provide access address (interface address)

2. Provide access method (specified parameters and data format)

3. General requires authentication

 

 

 

The basic process interface

 

 

 Interface scene (eg: Mall)

 

Common Interface Category:

HTTP Interface: using the HTTP (Hyper Text Transfer) protocol for request and response interface

    A RESTful (referred REST) ​​Interface: a specification interface design, HTTP-based protocol transmission

RPC Interface: Remote Method Invocation (like calling a local method as the caller method on a remote server)

    Web Service Interface: SOAP-based protocol that uses an RPC HTTP transport solutions

    Dubbo: one for micro-RPC service solutions

 

A class interface resources general process:

1. The user accesses the browser http://www.baidu.com

2. The browser automatically redirected to http://www.baidu.com/

3. check whether the local domain have the appropriate cookies

4. Is there a local cache query the resource (no)

5. Are there www.baidu.com domain name in the query local hosts

6. queries the DNS server to point the ip www.baidu.com

7. The resource request to the server

8. query CDN (Content Distribution Services) whether there is a corresponding resource

9. The server redirects to https://www.baidu.com/

10. returns a resource (web page source code) and the reference request and download resource (css / js / pictures, etc.)

11. browsers render pages

 

 Another general process dynamic interface:

1. Users fill in the user name and password on the page, click Log

2. assembled page, encoded and transmitted POST request

3. check whether the local domain have the appropriate cookies

4. queries related to domain local hosts

The DNS query corresponding to the IP address of the domain name

Sends a request to the server 6

7.Nginx反向代理收到请求(根据匹配规则或负载均衡策略)转发给指定的应用服务

8.应用服务(Tomcat / phpfpm / wsgi)将请求翻译给程序代码

9.在程序代码路由中查询到对应的接口方法

10.接口方法处理请求

        1)一些安全过滤及验证

        2)获取请求数据中用户名及密码

        3)向数据库验证用户名和密码(成功)

        4)为用户生成并维持session(会话)

        5)组装登录成功信息并携带session_id返回响应

11.前端页面成功请求跳转响应的页面,并把session_id设置到用户本地的cookies中(标识用户已登录)

二、网络基础知识:IP地址

IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信,每台连网计算机都依靠IP地址来互相区分、相互联系。

 

 网络基础知识:端口

 端口(Port):是计算机与外界通讯交流的出口。

    为了应对不同类型或大量的访问请求,一般一个IP会拥有很多个端口(通常为65535个)。

按端口号可分为3大类:

    1.公认端口:从0到1023。互联网标准协议接口,如HTTP:80,HTTPS:443,FTP:21,SSH:22,SMTP:25等

    2.注册端口:从1024到49151。一些常见软件注册绑定的端口,如Tomcat:8080,MySQL:3306,Redis:6379等

    3.动态或私有端口:从49152到65535。一般为临时动态绑定的一个接口,如selenium webdriver启动是会临时绑定一个动态接口提供服务。

 

 网络基础知识:域名

1. 由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易的多了。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。

2. 使用ping查看域名对应的ip地址:61.135.169.125  <=>  http://www.baidu.com/

 

 网络基础知识:DNS(了解)

1. DNS是Domain Name System的缩写,即域名系统。提供网站域名与IP地址的相互转换服务。

2. 域名与IP地址之间是呈一一对应的关系。

3. 本地HOSTS配置:

    1)Win:C:\Windows\System32\drivers\etc\HOSTS

    2)  Linux/Mac:/etc/hosts

    3)  格式:ip域名

    4)一般Nginx反向代理接口都需要配置hosts,然后通过域名访问接口

    5)SwitchHosts

 

 三、 HTTP协议

HTTP:即超文本传输协议,应用层通讯协议。

1. 两个主要应用场景

    传输网页及图片等资源

    接口数据通讯

2.主要组成

    请求 Request

    响应 Response

    处理

 

HTTP协议:请求 Request

请求方法(Method):请求要做什么操作

URL:请求的服务器及接口地址和查询参数

请求头(Headers):请求数据辅助信息(内容类型Cookie等)

请求体(Request Body):请求数据

 

请求:请求方法

 

Chrome开发者工具抓包

打开浏览器按下F12,打开浏览器开发工具,地址栏输入https://www.baidu.com/

 

请求及抓包练习:查看请求

1. 浏览器访问 http://www.baidu.com 使用Chrome开发者工具查看请求详情

2. 浏览器访问 http://www.tuling123.com/openapi/api?key=ec961279f453459b9248f0aeb6600bbe&info=你好 使用Fiddler抓包查看请求原始(Raw)格式

3.使用Postman发送Post请求:http://115.28.108.130:5000/api/user/login/ 数据:name=张三,password=123456

思考:Post请求与Get请求有什么区别?

 

不同请求方法练习

任务列表:GET  http://115.28.108.130:5000/todos

新建任务:POST  http://115.28.108.130:5000/todos  数据:{"task":"吃大象"}

任务详情:GET  http://115.28.108.130:5000/todos/todo1

更新任务:PUT  http://115.28.108.130:5000/todos/todo1 数据:{"task":"温柔的打开冰箱门"}

删除任务:GET  http://115.28.108.130:5000/todos/todo1

HEAD http://115.28.108.130:5000/todos

OPTIONS http://115.28.108.130:5000/todos

 

GET方法和POST方法的区别

 GET方法

1. GET用于取回获取数据或资源

2. GET请求没有请求体

3. GET请求通过URL参数查询数据(URL有长度限制),请求体(请求数据)为空

4. 请求可被缓存及保存浏览器历史记录中(不适合敏感数据,安全性较差)

POST请求

1. POST请求用于新建及更新数据

2. POST请求数据一般放在请求体中,无长度限制

3. POST请求一般后台发送,不会被缓存和记录,安全性较好

4. POST请求是非幂等的,可能会影响之后的请求

        POST请求一般每次都会新建资源,如使用POST请求新建一个id为2的用户,下次再发送同样的POST请求建立id为2的用户会出错

 

请求:URL

 基本格式

    <scheme>://user:password@<host>:<port>/<path>?<query>

    scheme   协议 ftp、http、https

    host   主机/域名

    port 端口

    path 路径

    ?query  查询参数key=value&key=value

带参数GET请求练习(Chrome/Postman)

   1. https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15801396646

   2. http://www.tuling123.com/openapi/api?key=ec961279f453459b9248f0aeb6600bbe&info=你好

   3. http://115.28.108.130:8080/DemoController/getUserByIdAuth?id=1

 

 请求:常见请求头

 

 

请求头:内容类型Content--Type

内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

常见的媒体格式类型如下:

    text/html : HTML格式

    text/plain :纯文本格式

    image/gif :gif图片格式

    image/jpeg :jpg图片格式

    image/png:png图片格式

以application开头的媒体格式类型:

    application/xml : XML数据格式 webservice 协议采用的就是xml格式的数据请求

    application/json : JSON数据格式

    application/pdf :pdf格式

    application/msword : Word文档格式

    application/octet-stream : 二进制流数据(如常见的文件下载)

    application/x-www-form-urlencoded : 表单(纯文本)

    multipart/form-data: 复合表单(可以含有上传的文件)

 

 请求:请求数据

 不同内容类型请求数据发送练习(Postman)

  1. 无请求数据(GET)

  2. application/x-www-form-urlencoded : 表单(纯文本)

   http://115.28.108.130:5000/api/user/login/

  3. application/json: JSON数据格式

  4. application/xml : XML数据格式 webservice 协议采用的就是xml格式的数据请求

  5. multipart/form-data 复合表单(可以含有上传的文件)

 

HTTP协议:响应 Response

状态码及说明:返回请求的状态(成功还是失败)

响应头(Headers):响应数据辅助信息(内容类型,Cookie等)

响应体(Request Body): 响应数据

 

 

响应:状态码

每条 HTTP 响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。 http://www.w3school.com.cn/tags/html_ref_httpmessages.asp

 

 常见状态码

  1. 200: OK

  2. 302: http://115.28.108.130:8080/forWard.jsp?id=1 重定向:从响应的location里看

      http://115.28.108.130:8080/DemoController/getUserByIdForWard?id=1

  3. 401:未授权

      使用Postman 发送GET http://115.28.108.130:8080/DemoController/getUserByIdAuth?id=1

  4. 404:资源未请求到或者没有

      http://115.28.108.130:8080/DemoController/getUserByIdForWard1?id=1

  5. 405: 请求方法不对 GET http://115.28.108.130:5000/api/user/reg/

  6. 415 数据类型不对 POST http://115.28.108.130:5000/api/user/reg/ 使用表单格式

  7. 500: 服务器内部错误 GET http://115.28.108.130:5000/add?a=1.1&b=2

 

 响应:常见响应头

 

 

响应:响应数据

常见响应内容类型:

1. Text

2. HTML

3. JSON

4. XML

 

HTTP协议:HTTP与HTTPS的区别

HTTP与HTTPS

      HTTP协议传输的数据都是未加密的,HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。

HTTPS和HTTP的区别

    1. HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    2. HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。

    3. HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 

    4. HTTP的连接很简单,是无状态的;HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

 

HTTP协议:处理

接口处理一般流程:

  1. 身份验证(接口安全策略)

  2. 提取参数

  3. 处理业务

  4. 组装并返回响应

常见接口安全策略

  1. Cookie/Session: 服务器维持用户Session会话模式(用户登录模式)

  2. Appid/Token: 通过算法生成/校验身份令牌(token)模式

  3. 开放协议(Basic Auth/Oauth): 标准开放协议

  4. 数字签名: 对参数整体生成签名(sign),防止请求篡改

 

 Cookie与Session的区别

 

 Cookie和session都是由服务器生成,维持会话的作用。Cookie保存在客户端,session保存在服务端。Jsessionid为cookie和session结合使用(tomcat下),若客户端禁止掉cookie则通过在url后面增加sessionid实现。每次会话结束,sessionid都会注销,故需要关联。通过抓包实例介绍。

 

 四、什么是接口测试

    测试系统组件间接口的一种测试。

    检测外部系统与系统之间以及内部各个子系统之间的交互点。

    测试的重点是要检查数据的交换,传递和业务逻辑处理的过程,以及系统间的依赖关系。
 
为什么要做接口测试?

 

接口测试用例设计

 

 

五、抓包工具Fiddler的使用

1. 抓包

    代理:Tools -> options -> Connections -> Allow Remote Compute to connect

    手机抓包:手机与电脑同一WIFI,查看电脑ip,手机WIFI选高级 -> 手工配置代理:电脑ip:8888

    HTTPS抓包:查看电脑ip,访问http://ip:8888,下载并安装证书(iPhone需要信任证书)

 

 2. 查看请求

    查看: Inspector: 按WebForm/JSON/XML/Raw格式查看请求

    查找: Ctrl + F/在列中查找

    过滤: 快速命令/Filter (修改后需要重启)

3. 调试

    Composer: 发送请求

    修改HOSTS: Tools -> HOSTS

    断点/重发/简单压测 Rules -> Automatic breakpoints/拦截后修改请求/会话上点击右键->Replay -> shift + Replay Request

    Auto Responder: 重定向请求

    弱网模拟(不能设置具体网速, 需要通过Fiddler Script实现): Rules ->Performance->Simulate Modem Speeds

 

Fiddler介绍

主界面

  1. 工具栏

  2. 会话区

  3. 监控区

  4. 状态栏

 

 

Fiddler常见资源类型

会话区

 

 

Fiddler的使用

Inspector:

    Raw:请求的原始格式

    WebForm:请求的表单格式

    Json:请求的Json格式请求

    XML:请求的XML格式

过滤:Filter

    Hosts:按服务器过滤

    Clients Process:按客户端程序过滤

    Request Headers:按请求头过滤

    Breakpoints:设置断点

    Response Status Code:按状态码过滤

    Response Type and Size:按响应类型及大小过滤

    Response Headers:按响应头过滤

 

 

 

 

 

 

 

 

 

 

六、Postman的使用

请求

    不同内容类型的请求(Form/JSON/XML/文件上传)

    需登录接口(3种策略)/需授权接口(Basic Auth)

    其他(批量编辑/转为代码/Cookies管理器/控制台)

响应

查看格式/默认解析格式设置/Ctrl+F搜索

参数化

变量/环境管理/关联(接口依赖)

断言

状态码/包含文本/JSON断言

集合

导入导出/集合运行/使用数据文件进行参数化

其他

捕获(抓包)/Mock Server/监视器

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

作业:

写加油卡测试用例并用postman实现

"dataSourceId": "bHRz"

Guess you like

Origin www.cnblogs.com/majieboke/p/12175531.html