p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 28.0px Helvetica }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica }
p.p3 { margin: 0.0px 0.0px 0.0px 14.4px; text-indent: -14.4px; font: 24.0px "PingFang SC Semibold" }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "PingFang SC" }
p.p5 { margin: 0.0px 0.0px 0.0px 14.4px; text-indent: -14.4px; font: 24.0px Helvetica; min-height: 29.0px }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "PingFang SC Semibold" }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "PingFang SC" }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "PingFang SC Semibold" }
p.p10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica; min-height: 29.0px }
p.p11 { margin: 0.0px 0.0px 0.0px 14.4px; text-indent: -14.4px; font: 20.0px "PingFang SC Semibold" }
p.p12 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; min-height: 24.0px }
p.p13 { margin: 0.0px 0.0px 0.0px 0.0px; font: 28.0px "PingFang SC Semibold" }
span.s1 { font: 28.0px "PingFang SC" }
span.s2 { font: 24.0px "PingFang SC" }
span.s3 { font: 24.0px Helvetica }
span.s4 { font: 20.0px Helvetica }
span.s5 { font: 20.0px "PingFang SC" }
span.s6 { font: 28.0px Helvetica }

10.1 常用API接口协议介绍

HTTP协议 

超文本传输协议

它是用来在Internet上传送超文本的传送协议,运行在TCP/IP协议族之上,它可以使浏览器更加高效,使网络传输减少。

任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。

浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。

Http协议接口请求的介绍

一个http请求报文由请求行(request line)、消息头部(header)、空行、请求正文四部分组成;

1、请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段,组成,它们用空格分隔,例如:GET /index.html  HTTP/1.1

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET和POST方法;

GET:当client要从server中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给client。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制,例如:  /index.jsp?id=100&op=bind

POST:当client给服务器提供信息较多时, 使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以key/value的形式出现,可以传递大量数据,可用来传递文件。

2、消息头部

请求头部由key/value键值对组成,每行一对,key和value用冒号":"分隔,请求头部通知服务器有关于client端的请求信息,典型的请求头:

User-Agent:产生请求的浏览器类型

Accept:client端可识别的内容类型列表

Host:请求的主机名,允许多个域名同处一个ip地址,即虚拟主机    

3、空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器请求头结束。对于一个完整的http请求来说空行是必须的,否则服务器会任务本次请求的数据尚未完全发送到server,处于等待状态

4、请求正文

请求数据不在GET方法中使用,而是在POST中使用。POST方法适用于需要client填写表单的场合,与请求数据相关的最常用的请求头是Content-Type 和Content-Length

Http协议接口返回状态代码介绍

常见状态代码、状态描述、说明 :

200 OK      //客户端请求成功

400 Bad Request  //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403 Forbidden  //服务器收到请求,但是拒绝提供服务

404 Not Found  //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error //服务器发生不可预期的错误

503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后,可能恢复正常

Http协议接口实体报头介绍

请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息。

Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型

如:Content-Type:text/html;charset=ISO-8859-1 ,

Content-Type:application/json;

Content-Type:application/soap+xml;

Content-Type:application/x-www-form-urlencoded

HTTPS协议

超文本传输安全协议

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。

HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

SOAP协议

简单对象访问协议

它是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息,SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。

SMTP协议

简单邮件传送协议

它是由源地址到目的地址传送邮件的一组规则,用来控制信件中转方式的一种协议。

SMTP使用的TCP端口号是25,接收端在TCP的25号端口等待发送端来的E-mail,发送端向接收方(即服务器)发出连接要求,一旦连接成功,即进行邮件信息交换,邮件传递结束后释放连接。

SNMP协议

简单网络管理协议

它是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议。

SNMP,由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

FTP协议

文件传输协议

它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法,像传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。

FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件。

10.2 API 接口自动化测试的基本原理

基于HTTP协议的自动化测试基本原理

1.模拟请求url和报文,准备测试数据

2.模拟客户端发送HTTP请求

3.模拟客户端从服务器接收返回报文

4.验证返回结果是否符合预期

10.API 接口自动化测试的基本原理的更多相关文章

  1. Python Api接口自动化测试框架 excel篇

    工作原理: 测试用例在excel上编辑,使用第三方库xlrd,读取表格sheet和内容,sheetName对应模块名,Jenkins集成服务发现服务moduleName查找对应表单,运用第三方库req ...

  2. itnesse实现api接口自动化测试学习

    上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接口测试的时候,就是只在浏览器里人工测试 ...

  3. 利用fitnesse实现api接口自动化测试

    上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,仔细想想,我做接口测试也有几个年头了,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接 ...

  4. REST API 自动化测试 利器Rest Assured(API接口自动化测试框架体系)

    现在,越来越多的 Web 应用转向了 RESTful 的架构,很多产品和应用暴露给用户的往往就是一组 REST API,这样有一个好处,用户可以根据需要,调用不同的 API,整合出自己的应用出来.从这 ...

  5. 首次分享,大厂资深测试做Api接口自动化测试的关键思路都在这里了

    引言 与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小.因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中. 手工做接口测试,测试数据和参数都可以由测试人员手动填写和更 ...

  6. Laravel 的 JSON API 接口自动化测试

    Laravel 自带了两种测试类型 Feature Test: 功能测试.针对类似接口这种流程性的测试. Unit Test: 单元测试.针对单个函数这种输入输出结果的测试. 新建一个 Feature ...

  7. API 接口自动化测试框架

    转自: https://testerhome.com/topics/3455 前言 接口自动化逐渐成为各大公司投入产出最高的测试技术.但是如何在版本迅速迭代过程中提高接口自动化的测试效率,仍然是大部分 ...

  8. Python Api接口自动化测试框架 代码写用例

    公司新来两个妹子一直吐槽这个接口测试用例用excel维护起来十分费脑费事,而且比较low(内心十分赞同但是不能推翻自己),妹子说excel本来就很麻烦的工具,于是偷偷的进行了二次改版. 变更内容如下: ...

  9. 使用REST-Assured对API接口进行自动化测试

    转载:http://blog.csdn.net/u012050416/article/details/50674612 准备 目标 开始编码 总结   说明:本文只是一个getStart示例,关键在于 ...

随机推荐

  1. (八十八)VFL语言初步 - 实现布局

    [基本语法] VFL的语法为H:和V:开头,代表水平和垂直. 接下来如果要涉及距离,使用|-x-,x为距离的点数. 对于视图,用[ ]包围,例如[blueView]. ①下面的语句实现了blueVie ...

  2. (NO.00004)iOS实现打砖块游戏(四):砖块类的实现

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 用Xcode打开之前SpriteBuilder创建的项目,我们现 ...

  3. iOS中 MPMoviePlayer 实现视频音频播放 作者:韩俊强

    ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController.前者是一个view,后者是个Controller.区别就是 MP ...

  4. J2EE学习从菜鸟变大鸟之四 JNDI(Java Naming and Directory Interface)

    掌握 J2EE 是件不是很轻松的事哈,但是很有意思,抽象抽象哈哈,因为它包含的技术和缩略语在不断地增长.Java 命名和目录接口(Java Naming and Directory Interface ...

  5. Android开发-Listview中显示不同的视图布局

    1. 使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能.convertView在Item为单一的同种类型布局时,能够 ...

  6. (NO.00003)iOS游戏简单的机器人投射游戏成形记(十九)

    如果看过前面博文的童鞋可能记得,我们在Level1中是通过写代码实现篮筐的走位.写代码不够直观,需要反复编译测试,有没有其他的方法呢? 答案自然是:大大的有 ;) SpriteBuilder宝贝自身已 ...

  7. springMVC参数的传递方式(1.通过@PathVariabl获取路径参数,2.@ModelAttribute获取数据,3.HttpServletRequest取参,4@RequestParam)

     通过@PathVariabl注解获取路径中传递参数 JAVA      @RequestMapping(value = "/{id}/{str}")      public  ...

  8. Mybatis插件原理分析(一)

    我们首先介绍一下Mybatis插件相关的几个类,并对源码进行了简单的分析. Mybatis插件相关的接口或类有:Intercept.InterceptChain.Plugin和Invocation,这 ...

  9. Spring Security3 - MVC 整合教程

    下面我们将实现关于Spring Security3的一系列教程.  最终的目标是整合Spring Security + Spring3MVC  完成类似于SpringSide3中mini-web的功能 ...

  10. Chapter 1 Securing Your Server and Network(12):保护链接服务器

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363,专题目录:http://blog.csdn.net/dba_huangzj ...