接口测试

1、什么叫接口测试?  

     对接口进行功能测试,输入正常异常的值看它返回值是否正确;进行接口测试必须前后端分离;
2、接口分类:程序内部(一个系统各开发模块之间的接口),程序外部(从其他地方获取数据的时候,人家不可能把它的数据给你,可以通过接口的方式实现数据共享);
3、常用接口:http api(app web端常用),webservice,两者的区别是:前者请求报文是key-value,返回报文是json串,有get 和post两种方式;后者请求报文和返回报文都是xml格式;以前使用xml格式比较多,现在使用json比较多,当两种开发语言互相调用时,把这两种语言转化为一种公共的格式;
4、为什么做接口测试?发现前端页面上发现不了的问题,如调用支付接口时,金额修改为负值操作等
5、接口测试流程:需求分析--提交接口文档--编写接口用例--评审测试用例--提交测试报告
 通用接口用例设计
     (1)通过性的,按照接口文档中的参数和返回值是否满足
     (2)异常的
     (3)参数组合的形式,当前一个参数影响后续输入内容时
     (4)绕过验证,如:提交金额时修改金额为非法值
     (5)绕过身份授权,普通员工有管理员的权限
     (6)参数是不是加密(重要接口考虑)比如登录
     (7)密码规则复杂程度
6、get和post请求
      get可以在浏览器上(不支持ie浏览器)直接操作,输:请求的url?参数名=xx  (单个参数名)
       多个参数名时,https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1
      post只能用工具
      get和post请求的区别:get写在URL或者cookie,post写在body
                                         (一般情况下)get请求:向服务端获取数据;post请求向服务端发送请求;
                                           其他(安全、长度)都是一样的;
                                          
      http请求的状态码:2开头的 如200 请求发送成功;3开头300 重定向(原来的url不在,自动跳转到别的链接)
                                      4开头  400 客户端有问题,5开头,500 服务端有问题;
7、cookie和session
     cookie存在本地的键值对,session存在服务器的键值对
8、postman请求
     json入参(参数比较多的情况)
 
     添加header(固定访问那些域名的链接)
 
     权限验证及添加cookie(需要前面步骤才能进行后面的操作)
 
文件上传
9、jmeter做接口测试
定义用户需要的变量

 

 

登录

返回结果

 

 

入参

学生金币充值

调取返回值的两种方式

正则表达式

json path extractor

 

 

获取所有学生信息

文件上传

 

响应断言,添加返回结果,判断是否正确

jmeter参数化的两种方式

(1)添加csv data set config

(2)函数助手

 

加到这里

函数助手生成日期

 

链接数据库

以mysql为例

 

 链接my sql时,jdbc:mysql://host:port/dbname?allowMultiQueries=true,驱动:com.mysql.jdbc.Driver

 

 

添加jdbc request

若为其他任意命令,进行如下选择

 

 

 

设计的样板如下:

 

正常验证:

通过性的验证(按接口文档上传参数,看结果能否通过)

参数组合验证(添加商品、修改商品等)

异常验证:

不按接口文档上的要求输入参数

 

 

2、接口安全

1. 绕过验证(例如购买商品提交订单的时候把价格改成任意数字)

2. 绕过身份授权验证(普通用户可否修改商家信息)

3.参数是否加密(用户名密码是否是明文显示,或则暗文显示可否容易破解)

4. 密码安全规章、密码复杂程度校验

posted @ 2017-12-15 17:16  liyajing  阅读(148)  评论(1编辑  收藏  举报