做网站简单需要什么,整套vi设计包含哪些,企业网站建设运营,wordpress首页固定页面第 1 章
什么是接口测试
1.1、为什么要进行接口测试
目前除了特别Low的公司外#xff0c;开发都是前后端分离的#xff0c;就是说前端有前端的工程师进行编码#xff0c;后端有后端的工程师进行编码#xff0c;前后端进行数据基本都是通过接口进行交互的。
1.2、接口测…第 1 章
什么是接口测试
1.1、为什么要进行接口测试
目前除了特别Low的公司外开发都是前后端分离的就是说前端有前端的工程师进行编码后端有后端的工程师进行编码前后端进行数据基本都是通过接口进行交互的。
1.2、接口测试
接口测试就是针对软件向外提供的服务接口的输入和输出进行测试以及软件内部接口与接口之间相互依赖关系的测试总的说来接口测试就是验证接口功能与接口文档所描述的是否一致。
接口测试的原理是基于http\https等协议模拟客户端向服务端发送请求。
1.3、什么是URL
URL就是统一资源定位符获取服务器资源的一种80端口可以不写。
标准格式:协议://服务器IP:端口/路径1/路径N?key1value1key2value2。
示例鹰迅课堂PC端网站
http://www.yxclass.net:80/index
http://www.yxclass.net/index
第 2 章
B/S架构和C/S架构
2.1、B/S架构
B/S架构即浏览器-服务器架构模式类似鹰迅课堂PC端网站网址http://www.yxclass.net依赖网络环境UI动画等需要网络加载快使用才不会卡顿。
B/S架构的优点是不管是什么系统都是一套代码而且不用考虑兼容性的问题缺点是体验感不好但只要网络足够好就接近原生开发了体验感就能接近C/S架构了。
2.2、C/S架构
C/S架构就是客户机-服务器架构模式即Client-Server(C/S)结构就像手机的APP一样体验功能更舒服但是缺少通用性有bug修复或者功能升级就需要重新发布用户需要下载安装新的依赖包而且还要考虑各个系统之间的兼容性要开发多个版本这增加了维护和管理的难度。
第 3 章
HTTP协议
3.1、HTTP协议
HTTP是HyperText Transfer Protocol的简写中文意思是超文本传输协议。
协议就是一种约定规定好一种信息的格式如果发送方按照某种请求格式发送信息那么接收端就要按照这样的格式解析数据这就是协议。总的说来就是我们约定好的一种规范我按照这种协议发送给你你就要用这种协议进行解析不然就会失败。
3.2、常见的协议
常见的协议有json协议和xml协议
json协议 xml协议 3.3、HTTP的九种请求方法
http1.0定义了三种 Get向服务器获取资源比如常见的查询请求。比如需要查询鹰迅课堂的课程列表就用get请求。 Post向服务器提交数据而发送的请求比如说测试鹰迅课堂的注册登录功能我们就需要向服务端提交账号密码就要用到Post请求。 Head和get类似返回的响应中没有具体的内容用于获取响应报文的头部信息。
http1.1定义了六种 Put一般是用于更新请求比如更新个人信息、商品信息全量更新。 PatchPut 方法的补充更新指定资源的部分数据。 Delete用于删除指定的资源。 Options: 获取服务器支持的HTTP请求方法服务器性能、跨域检查等。 Connect: 方法的作用就是把服务器作为跳板让服务器代替用户去访问其它网页之后把数据源返回给用户网页开发基本不用这个方法如果是http代理就会使用这个让服务器代理用户去访问其他网页类似Nginx等反向代理中介。 Trace回显服务器收到的请求主要用于测试或诊断。
3.4、Http请求消息结构
http请求消息体分为三部分请求行请求头请求体。 请求行 协议名 URL地址 请求方法
2、请求头 报文头包含若干个属性 格式为“属性名:属性值”。 服务端据此获取客户端的基本信息。
3、请求体 请求的参数可以是json对象、xml对象也可以是前端表单生成的keyvaluekeyvalue的字符串。
3.5、常见的请求头 Accept览器支持的 MIME 媒体类型, 比如 text/html, application/json, image/webp等等。 Accept-Encoding浏览器发给服务器声明浏览器支持的编码类型gzip, deflate。 Accept-Language客户端接受的语言格式比如 zh-CN。 Connectionkeep-alive , 开启HTTP持久连接。 Host服务器的域名。 Origin告诉服务器请求从哪里发起的仅包括协议和域名 CORS跨域请求中可以看到。Response有对应的HeaderAccess-Control-Allow-Origin Referer告诉服务器请求的原始资源的url其用于所有类型的请求并且包括协议域名查询参数很多抢购服务会用这个做限制将这个http请求发给服务器后如果服务器要求必须是某个地址或者某几个地址才能访问而你发送的referer不符合他的要求就会拦截或者跳转到他要求的地址然后再通过这个地址进行访问。 User-Agent服务器通过这个请求头判断用户的软件的应用类型、操作系统、软件开发商以及版本号、浏览器内核信息等风控系统、反作弊系统、反爬虫系统等基本会采集这类信息做参考。 Cookie表示服务端给客户端传的http请求状态,也是多个keyvalue形式组合比如登录后的token令牌等。 Content-TypeHTTP请求提交的内容类型一般只有post提交时才需要设置比如文件上传表单提交等。
3.6、Http响应消息结构
1、响应行
报文协议及版本、状态码 。
2、响应头
响应报文头包含若干个属性格式为“属性名:属性值” 。
3、响应正文
响应报文体是我们接口测试需要看到的内容有多种形式比如html、json、图片、视频文件等。
3.7、常见的HTTP响应头 Allow: 服务器支持哪些请求方法。 Content-Length: 响应体的字节长度。 Content-Type: 响应体的MIME类型。 Content-Encoding: 设置数据使用的编码类型。 Date: 设置消息发送的日期和时间。 Expires: 设置响应体的过期时间,一个GMT时间表示该缓存的有效时间。 cache-control与Expires的作用一致都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据,优先级高于Expires控制粒度更细如max-age240即4分钟。 Location表示客户应当到哪里去获取资源一般同时设置状态代码为3xx。 Server: 服务器名称。 Transfer-Encodingchunked 表示输出的内容长度不能确定静态网页一般没有基本出现在动态网页里面。 Access-Control-Allow-Origin: 定哪些站点可以参与跨站资源共享。
3.8、常见请求/响应头content-type类型
1、Content-type: 用来指定不同格式的请求和响应信息俗称 MIME媒体类型。
2、常见的取值 text/html HTML格式。 text/plain 纯文本格式。 text/xmlXML格式。 image/gif gif图片格式。 image/jpeg jpg图片格式。 image/pngpng图片格式。 application/jsonJSON数据格式。 application/pdf pdf格式。 application/octet-stream 二进制流数据一般是文件下载。 application/x-www-form-urlencodedform表单默认的提交数据的格式会编码成keyvalue格式。 multipart/form-data表单中需要上传文件的文件格式类型。
HTTP中文文档https://developer.mozilla.org/zh-CN/docs/Web/HTTP
3.9、Http常见响应状态码HttpCode 1XX: 收到请求需要请求者继续执行操作比较少用。 2XX: 请求成功常用的 是200。 3XX: 重定向浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址这个地址可以从响应的Location首部中获取重定向的好处有网站改版、域名迁移等多个域名指向同个主站导流。 301永久性跳转比如域名过期换个域名。 302临时性跳转。 4XX: 客服端出错请求包含语法错误或者无法完成请求。 400: 请求出错比如语法协议。 403: 没权限访问。 404: 找不到这个路径对应的接口或者文件。 405: 不允许此方法进行提交Method not allowed比如接口一定要POST方式而你是用了GET。 5XX: 服务端出错服务器在处理请求的过程中发生了错误。 500: 服务器内部报错了完成不了这次请求。 503: 服务器宕机。
第 4 章
GET请求和POST请求
4.1、get请求
请求地址http://www.yxclass.net/detail?idwVsv1zgh
请求参数idwVsv1zgh get请求特点 参数和url通过?隔开 参数是以键值对的形式例如name鹰迅 可以传递多个参数参数与参数之间通过隔开。例如tel18888888888passwordyxclass.net。
4.2、Post请求
请求地址http://49.234.106.116:8080//api/v1/user/login
请求参数
{ tel: 18888888888, pwd: yxclass.net
}
json传参需要在Headers这里加上Conten-Type。 4.3、Get请求和Post请求的区别
1、get请求一般是获取数据post请求一般是提交数据。
2、post请求比get请求安全。
3、本质区别是传参的方式不一样 get请求在地址栏后面以的方式传参多个参数之间用分隔地址直接暴露在url上面了不安全。 post请求是在body以表单的方式传参相对来说更安全一些。
第 5 章
环境变量
5.1、什么是环境变量
正规公司的网站都有三套环境分别是开发测试环境、准发布环境和生产环境在进行接口测试时多套环境之间的切换可以通过设置不同的环境变量来实现而不是每次切换环境都去修改请求里面的参数。
5.2、设置环境变量
1、本地变量——dev 环境变量的使用在两个花括号里面放变量名。
示例{{变量名}} 2、集合变量
集合变量就是一个集合里面的变量在其他集合是没法使用。 示例设置了集合变量不选择本地变量发送请求也是成功的。 3、全局变量——globals
全局变量作用于全局就是作用于整个Postman所有请求的变量。 设置了全局变量在没有设置环境变量的集合里面发送请求也是成功的。 5.3、当三者冲突时如何取值
冲突时的取值环境→集合→全局。
当集合变量和环境变量和全局变量冲突的时候优先使用环境变量当集合变量和全局变量冲突的时候优先使用集合变量。
对于冲突问题我总结的经验是看谁的作用域小就优先选择谁。
第 6 章
预处理脚本和断言
6.1、预处理脚本
预处理脚本是接口请求发起前执行请求的某些前置工作类似JMeter的BeanShell预处理程序以及Selenium自动化测试时每一次调用测试方法的时候都会先执行setUp完成自动化测试初始化工作。 6.2、断言
预处理脚本是接口请求发起前执行Tests断言是接口请求发起之后执行对接口请求发起之后对响应结果进行处理。 断言主要测试的目的是确定系统给定的参数是否正常工作。为了对功能参数进行更准确的判断我们在测试运行期间使用实际值来确定预测值。
总的说来就是断言可以帮助我们在测试运行期间确定期望值和实际值是否匹配。如果实际值和预期值不匹配则测试将失败并且输出指向失败。 第 7 章
集合测试
7.1、集合测试项目实战
集合测试就是一次测试多个接口这样不用每个接口都去单独运行了。 Iterations的测试次数可以填1001000等次数来进行性能测试但是性能测试一般是使用JMeter。 点击运行就可以看到集合里所有的接口请求的请求结果了。 7.2、外部文件作为参数
外部文件可以使用txt或者CSV文件。 txt: 第一行变量名变量名之间通过(英文状态下)逗号分隔开最后一个变量不需要加逗号。 第一行以后就是变量的值变量和变量的值上下对应变量值之间的格式和变量名书写格式相同。 CSV 第一行变量名。 第一行之后时变量的值。 变量名和变量值之间上下对应。 使用外部文件作为参数要将编码改为utf-8我使用的是EditPlus导入文件后编码选择utf-8然后保存即可。 保存好文件后在集合中添加保存的文件。 7.3、使用Postman生成集合的在线API文档 7.4、沙箱预处理和断言综合实战
Postman沙箱是一个JavaScript执行环境当为接口请求编写预请求脚本或测试脚本时编写的脚本就在这个沙箱中进行执行。
登录和获取用户信息接口综合实战
1、登录接口测试 发送请求后登录响应结果的data内容就保存到环境变量里了。 2、测试获取用户信息 3、集合测试
两个接口都测试通过后之后每次回归时就可以进行集合测试了。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走
这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你