接口测试笔记

一、自动化测试包含:

  1. 接口自动化
  2. Ui自动化(web端、移动端(android、ios))

二、接口测试:

接口测试的必要性:

1、可以发现很多在页面上操作发现不了的bug

2、检查系统的异常处理能力

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

4、前端随便变,接口测好了,后端不用变

接口也分为前端和后端,一般来说,越是在底层发现的bug解决的成本越低,所以后端接口测试越来越重要,不仅可以提升产品质量,有可解决产品开发成本

         目前用到的接口测试工具有postman和jmeter,后期可通过学习自己编写测试工具。

接口测试更加类似于功能测试,比ui测试简单,其原理就是通过接口请求将数据库查到的数据返回回来。

接口测试流程:需求评审,熟悉业务和需求;开发请求接口文档;编写接口测试用例;用例评审;提测后开始测试;提交测试报告

其中开发提供的接口文档至少要求其包含:

1、接口说明

2、调用url

3、请求方法(get\post

4、请求参数、参数类型、请求参数说明

5、返回参数说明

接口返回的数据都是josn类型(josn是一种通用的数据类型,即任何一种语言都可以通过josn进行数据之间的互通)

三、http请求

         get请求和post请求的区别

                  get请求它的请求数据是在放在url里面的(目前地址栏已无长度限制)

                  post请求他的数据是放在body里面的

cookie:存放在本地的一个键值对,数据是从服务器请求得来,存储在本地

session:存在服务器的一个键值对,具有时效性

每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:

1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。

2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,

3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面

4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果

http请求包含请求头和请求体

           get请求

                    get请求头

                    url?k=v&k=v

                    header 传输一些额外的信息

四、jmeter工具

Jmeter 性能测试工具 java开发的   

jmeter查看结果树乱码

   1、在jmeter的bin目录下找到jmeter.properties这个文件添加上sampleresult.default.encoding=utf-8

   2、重启jmeter

jmeter body data里面有乱码怎么解决

   1、在jmeter的bin目录下找到jmeter.properties这个文件添加上jsyntaxtextarea.font.family=Hack

   2、重启jmeter

         jmeter装json path插件

                  http://www.nnzhp.cn/archives/322

jmeter操作数据库:

  1. 首先,我们在测试计划下,把JDBC驱动包添加上,也可以将驱动包放入jmeter的lib目录下,即可自动加载。
  2. 然后,新建一个线程组→JDBC Connection Configuration(连接数据库组件)→JDBC Request(JDBC请求)
  3. 接下来,配置JDBC Connection Configuration

Ps 下面介绍比较重要的几个参数其他地方可照截图配置即可。

Variable Name:连接名称,自定义填写。

Validation Query验证查询,不同版本的填写格式可能不同(比如3.1是Select 1,2.6是Select1),格式错误会报错。最新的Jmeter3.3已经做成下拉框,比较人性化。

Database URL:数据库url,格式固定。

jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

jdbc:mysql:// 表明连接的数据库是mysql

ip 数据库服务器地址

port mysql端口号

dbname 数据库名称

useUnicode=true 使用Unicode编码格式(字符集编码格式)

characterEncoding=utf8 使用UTF-8解码(字符集编码格式)

allowMultiQueries=true 允许多个query一起使用(1个请求中添加多个sql语句)

  1. 配置完毕,接下来填写JDBC请求

Variable Name:与JDBC Connection Configuration中的Variable Name保持一致

Query Type语句类型,查询用select,增删改用update,一起用可以选择callable

         jmeter 参数化

           1、用户定义的变量

           2、函数助手里面的

                    __random

                    __time

                             yyyyMMddHHmmdd  时间的格式

                    jmeter里面取到时间戳是精确到毫秒的

           3、文件里面读取

                    默认不写绝对路径的话,是从jmeter的bin目录下读取文件

                    文件里面可以写多列,多列的话,以逗号隔开,参数名也要写多个。

jmeter 压测

           并发用户数

           tps  服务端每秒钟处理的请求数  越大越好  

           响应时间  越快越好

           并发用户数/响应时间=tps

时间戳就是从计算机诞生那一天到现在过了多少秒

猜你喜欢

转载自www.cnblogs.com/kuhaha/p/9074433.html