接口测试、接口测试工具(JMETER)

一、接口测试相关概念

二、postman的使用

三、jmeter的使用

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

一、接口测试

接口:就是从数据库里面取数据、插入数据 前端:web:html、js、css
ios:object-c、swfit
android:Android
后端:php、java、python、go等等
客户端、服务端
接口测试就是功能测试,比功能测试还简单
前后端接口交互,接口作用,把前后端连接起来
1,接口的请求url
2,请求参数
3,请求方式 get/post/put/delete
get请求:不需要借助任何工具,在浏览器里就可以发请求 url?parma=abc

 

接口测试思路:

1.基本功能测试(业务逻辑实现)

2.边界值分析

3.参数组合

4.异常处理:

4.1某个接口需要先登录获取 sesssion,如果直接调用该接口应该给出相应提示

4.2重复提交(付款),程序怎么处理的

4.3一个业务流程包含多个操作步骤,如果某个操作失败,那么整个操作需要回滚。或者调用前一个步骤的逆向接口进行操作取消

4.4关联系统出现宕机、超时或者无响应的状态时,接口返回提示正确,业务逻辑正确,不可存在事务性不一致的情况

4.5 数据库里数据量较大时(百万级),测试对DB进行增删改查操作的效率。

接口传入数据与插入DB的数据一致性:前端某个操作涉及后台DB多张表时。每张表面都要检验数据正确性。

性能层面:

5.1 接口响应时间

5.2 吞吐量

5.3 并发数

5.4 服务器资源使用率(cpu、内存、磁盘、网络)

6 安全测试:敏感信息是否加密(前端、日志)、sql注入

 

二、postman工具的使用

1)postman的基础功能

2)接口请求流程

1. GET 请求 GET请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上, 所以,GET请求的请求头与请求参数如在接口文档中无特别声明时,可以不填。

 

响应 示例: 这里会有请求的响应状态码,响应时间,以及响应大小

响应体示例: 响应的格式可以有多种,我这里由于请求的是 百度,so, 响应的是 html ,
一般情况下,我们自定义接口的话是 json格式的响应体

2. POST请求
POST请求一:表单提交

下图示例中设置了请求方法,请求URL,请求参数,但是没有设置请求头

在我的使用过程中,请求头是根据请求参数的形式自动生成的
请求头中的Content-Type与请求参数的格式之间是有关联关系,比如:

 

POST请求二:json提交
下图中,当我们选择JSON(application/json) 是会自动帮我们设置 headers 为 application/json
在这里就不截图 举例了,朋友们可以自行去查看

POST请求三:xml提交

POST请求四:二进制文件提交

 

 

三、jmeter工具的使用

性能测试工具:压测 开源性能测试工具

postman:测试接口功能的实现

1.添加HTTP请求

测试计划-线程组-HTTP请求

添加查看结果树

jmeter响应数据乱码解决:

1)在jmeter下的bin目录找到jmeter.properties文件

2)在最后加上sampleresult.default.encoding=UTF-8

2.设置HTTP请求默认值

1)测试计划-线程组-添加-配置原件-HTTP请求默认值:协议、服务器名称和IP、端口号设定

2)用户参数设置

 

3.设置HTTP cookie管理器

测试计划-线程组-添加-配置元件-添加HTTP cookie管理器

登录返回的seesion值,在需要充值的http请求下添加cookie值

 

 4.参数化

1)函数助手 random、time等

8位数随机,8位最小和8位最大 添加时间戳,时间戳转换 格式化时间,如下图

 

 

 

 

2) 用户参数,用户定义的变量

 

 

 

3)CSV参数化

本文以登录的用户名和密码为例

  1. 创建.csv文件,用户名和密码中间以逗号隔开

 

图 1 创建csv文件

     2    在线程组中添加并配置CSV Data Set Config

  1. 添加CSV Data Set Config

 

图 2 添加CSV Data Set Config

  1. 配置CSV Data Set Config

 

 

 

图 3 配置CSV Data Set Config

  • Filename: 指保存信息的文件目录,可以相对或者绝对路径。否则会在jmeter日志文件(jmeter.log目录位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系统找不到指定文件,运行脚本后,登录失败。
  • File encoding: 保持默认。默认为ANSI
  • Variable Names: 给csv文件中各列起个名字(有多列时,用英文逗号隔开列名)便于后面引用
  • Delimiter:与 .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;
  • Allow quoted data? :是否允许引用数据,---这个目前还未弄明白,设置成True或者False都能正常引用数据。
  • Recycle on EOF?:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环
  • Stop thread on EOF? :到了文件尾是否停止线程,True—停止,False—不停止,注:当Recycle on EOF设置为True时,此项设置无效。
  • Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。

²  All threads:计划中所有线程,假如说有线程1到线程n (n>1),线程1取了一次值后,线程2取值时,取到的是csv文件中的下一行,即与线程1取的不是同一行。

²  Current thread group:当前线程组,假设有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn。取之情况是:线程A1取到了第1行,线程A2取第2行,现在B1取第1行,线程B2取第2行。

²  Current thread:当前线程。假设测试计划内有线程1到线程n (n>1),则线程1取了第1行,线程2也取第1行。

 

       3    引用csv文件中的数据

图 4 引用csv文件中的数据

  1. 找到需要传递参数的HTTP请求
  2. 将具体值改为变量引用,引用变量:${变量名}

 

图 5 具体值改为变量引用

  1. 在察看结果树中,察看变量引用的具体值

 

图 6 察看变量引用的具体值

 5.断言

本次主要介绍jmeter中的添加断言操作。检查测试中得到的响应数据是否符合预期。通过响应断言控制面板,测试人员可以添加模式字符串与响应的各个域进行比较。在断言控制面板中还可以选择字符串是否与其匹配整个响应,或者仅预期响应包含模式。可以对任何控制器附加多个断言。在jmeter4.0版本以上可以添加失败时的响应信息。以下是在登录HTTP请求中添加断言的实践操作。

线程组-添加登录HTTP请求-添加查看结果树-运行登录HTTP请求一次,查看登录成功的响应数据、请求结果

添加断言

(1)在断言控制面板中输入取样器请求数据进行断言检查

在“要测试的响应字段”模块选择“response Headers”,“模式匹配规则”模块选择“包含”,在“要测试的模式”模块点击添加按钮,在面板中输入运行后返回的取样器请求数据

 

(2)在断言控制面板中输入响应请求数据进行断言检查

在“要测试的响应字段”模块中选择“响应文本”,在“模式匹配规则”模块选择“包括”,点击添加按钮,在断言控制面板中输入运行后返回的响应数据,比如响应数据中是否包含“token”字段

在断言控制面板中的“custom failure message”模块可以输入运行失败时返回的断言结果:

 

6、断言添加完成后,可以在请求下添加断言结果,对断言的运行进行监听

 

(1)在断言控制面板中输入取样器请求数据进行断言检查的运行结果

 

(2)在断言控制面板中输入响应请求数据进行断言检查的运行结果

 

(3)运行失败返回的断言结果:

 

 

在查看树中三次运行结果:

 

 

posted @ 2019-03-20 00:52  奔跑的琦琦  阅读(315)  评论(0)    收藏  举报