接口测试随笔

---恢复内容开始---

一、接口测试

 

 

接口测试  postman Jmeter    功能测试,从数据库查到数据

接口返回的数据都是json 

前端 : 网页 html css/app android object-C  页面展示         后端 : 服务端 业务逻辑处理      依据接口文档进行测试
get 和 post 区别        一个传的数据小 一个大
get   浏览器默认调用get请求,使用url和cookie传参 post 数据放到body里
get   获取数据   post 发送数据    get具有幂等性,post没有
传输类型,方法,常见的使用场景,优缺点
get 只有包头   post具有完全包头  请求内容等
 

  GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)

POST方式的请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200(返回数据)

GET产生一个TCP数据包;POST产生两个TCP数据包。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次

HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。

HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接

http 和 https 区别?
HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐
私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司 设计了
SSL(Secure Sockets Layer)协议用于对 HTTP 协议传输的数据进行加密,从而
就诞生了 HTTPS。简单来说,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全。
HTTPS 和 HTTP 的区别主要如下:
 HTTPS=SSL+HTTP
1、https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。  2、http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议。
3、http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。(这个只是默认端口不一样,实际上端口是可以改的)
4、http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
 
HTTP 请求 请求头 请求体    url:xxxx  header 传输一些额外信息
200 2开头访问成功  300 3开头代表重定向  
400 4开头代表客户端发送请求有语法错误 403 无权限 404 无此页面 
500 5开头代表服务器有异常 500服务器内部异常 504代表服务器超时
 
cookie  本地存储键值对  session 服务端存放键值对      cooke session 详解 :http://www.nnzhp.cn/archives/426 
顺便安利一个顶好用的Jmeter插件                              

Jmeter 安装插件  http://www.nnzhp.cn/archives/322  

插件需要安装在 jmeter下  lib/ext目录下

 

url展示为编码格式:
 
Jmeter 分布式压测
 
1.主控机Jmeter  bin 文件下 配置文件 jmeter.properties    

2.remote_hosts = 压力机IP地址:1099(","逗号分隔继续添加)压力机IP地址:1099

3.运行时重启      压力机并发数自动分配

4.运行时选择远程全部运行

 

2.Jmeter命令方式运行

1.window图形化界面里设计好脚本   2.进入Jmerer bin目录下运行命令

Jmeter -n -t D:\\test.jmx -l xxxxx.jtl

-n 没有图形化界面运行   -t 指定运行哪个脚本  -l 运行结果保存在哪个文件

3.打开Jmere图形化Jmeter图形化界面,添加聚合报告浏览导入运行结果文件

 

postman
cookie 管理

 

文件上传

 

二、Jmeter性能测试工具

Jmeter写脚本

1、修改jmeter查看结果树乱码问题:

在jmeter\bin目录下找到jmeter.properties文件,找到sampleresult.default.encoding这个之后在该注释行下添加如下:

sampleresult.default.encoding=utf-8

保持该文件,并重启jmeter,就可以解决jmeter返回解决乱码的问题

添加线程组

 

Jmeter 文件上传

 

时间戳: Jmeter 精确到毫秒,从计算机诞生那一天到现在过了多少秒

 

用户自定义变量 参数化

 

函数助手 --Rodom

 

CSV 参数化  不写绝对路径 默认从 Jmeter bin目录下读取
HTTP Cookie管理器

 

Jmeter
并发用户数 tps 服务端每秒处理请求数   响应时间 
聚合报告

 

Jmeter 连接数据库
Database URL : jdbc:mysql://****/jxz?characterEncoding=utf8&allowMultiQueries=true
JDBC Driver class : com.mysql.jdbc.Driver
抓包
 Charles    Fiddler

定位问题

协议 请求方式 数据类型

篡改请求数据

请求项右键Breakpoints 

charles  乱码解决

 
1、为什么需要session和cookie呢?

    web应用的发展经历三个阶段:
    web1.0:强调资源的共享
        http协议从一开始的设计上就是无状态的。
    web2.0:强调的是交互
        交互的出现就需要有状态的记录。
        最早出现的相关的技术就是session和cookie。
    web3.0:强调的是双赢。

2、session和cookie的特征。
    ·session和cookie都是由服务器生成的。
    ·session和cookie都是键值对应的。
    ·session是保存在服务器的,而cookie是返回给客户端的。
        服务器是在响应头中,以set-cookie这个信息头将cookie返回给客户端。
        session的ID(可能是保存session值的文件名称,也有可能是数据库中的记录的主键,总之在服务器上是唯一的。)一般都是以cookie的形式返回给客户端的。

    ·session和cookie都是有生命周期的。
        ·session的生命周期受到session自身的生命周期和客户端是否关闭的影响。

        ·cookie的生命周期受到cookie的生命周期和客户端是否保存cookie的影响。
        PS:在浏览器中,发送请求时都会自动将有效的cookie封装在请求头中发送给服务器。

    ·session和cookie都是有作用域。

3、保存状态的本质:
    1、第一次操作时,如果希望记录当前操作的状态,那么服务器就会生成对应的数据。

    2、第二次操作时,如果希望使用第一次操作的状态,则客户端需要提交相关的数据给服务器,服务器会根据自身的逻辑对数据进行必要的校验。

4、token到底是什么呢?
    本质上也是由服务器生成的一个包含特定值的数据,存储在指定的服务器(本地数据库、第三方数据库或者别的),而且以信息头或者表单的形式返回给客户端的。

5、综上可知,服务器要实现状态的记录,表现形式是多种多样的,session、cookie、token、表单数据等都是可选的。
    对于接口测试和性能测试人员来说,
        只需要知道服务器怎么给回数据,
        请求怎么携带数据即可。


6、为什么session比cookie要安全?
    对于session来说,真正有价值的信息是存储在服务器上的,对于用户来说是不可感知的,因此也就不存在泄漏的可能。
    而对于cookie来说,值本身就是返回给客户的,对于用户来说是可感知的,也就意味着泄漏和可以伪造的可能。

                                                                              ---------友情链接一个帅欧巴的博客 :牛牛的杂货铺    http://www.nnzhp.cn/

 

Life is too short,do not live the same day twice    |      总想来日方长,只可惜世事无常




 

---恢复内容结束---

posted @ 2018-05-24 00:11  Echo_梦里花落知多少  阅读(500)  评论(0编辑  收藏  举报