接口测试基础理论

 一、接口测试定义及分类

接口测试是测试系统组件间接口的一种测试。

分类:

测试外部接口:测试被测系统和外部系统之间的接口(只需要测试正例即可)

测试内部接口:

          1.内部接口只提供给内部系统使用。(只需测试正例即可)

           2.内部接口提供给外部系统使用。(测试必须非常全面,正例,各种场景,权限控制)

二、接口测试的流程以及用例设计

1.拿到接口api文档(通过抓包工具获取),熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码。

2.编写接口用例以及评审:

      思路:

            正例:输入正常参,接口能够成功返回数据

            反例:

                    鉴权码反例:鉴权码为空、错误、过期

                    参数反例:参数为空、类型异常、长度异常

                    错误码覆盖:根据业务而定

                    其他错误场景:接口黑名单、接口调用次数限制、分页场景。

3.使用接口测试工具postman执行接口测试

4.postman+Newman+Jenkins是先持续集成,并且输出测试报告并且发送邮件。

三、接口测试实践(微信公众平台接口)

获取权限:

appid(ID):

secret(密钥):

四、postman工具的使用

1、界面介绍:

workspace 工作空间

     collections 集合、项目集合

     Apis  api文档

     Environments 环境变量

     Mock Server 虚拟服务器

     Monitors  监听器

     History   历史记录

五、postman执行接口测试

请求页面

        params:get请求参数

        authorization:鉴权

        headers:请求头

        body:post请求参数

                none:没有参数

                form-data:既可以传键值对参数,也可以传文件

                x-www-form-urlencoded:只能传键值对参数

                raw:josn、text、xml、html、javascript

                binary:把文件以二进制的方式传参

        pre-request-script:请求之前的脚本

        tests:请求之后的脚本

        cookies:用于管理cookie信息

响应页签

        body:接口返回的数据

                pretty:以json、xml、html、等不同的格式查看返回的数据

                raw:以文本的方式查看返回的数据

                preview:以网页的方式产看返回的数据

        cookies:响应的cookie信息

        headers:响应头

        test results:断言的结果

        200-状态码

        ok-状态信息

        681ms-响应时间

        343B-响应的字节数

面试题:

get请求和post请求的区别:

1、get请求一般是获取数据,post请求一般是提交数据

2、post请求比get请求更安全

3、本质区别是传参方式不一样:

        get请求在地址栏后面以?的方式传参,,多个参数之间用&分隔

        post请求在请求体body以表单的方式传参

问题:

多种环境:开发环境、测试环境、生成环境

接口关联:手动关联

参数需要手动修改

六、环境变量以及全局变量

环境变量:就是全局变量

在environment中都命名为ip,开发测试环境的值为×××.××.××,生成环境变量的值就是域名

全局变量:是能够在任何接口里面访问的变量

获取环境变量和全局变量:{{变量名}}

七、接口关联

1、使用json提取器实现接口关联

第一个接口
//把返回的字符串格式的数据转换成对象形式

var result=JOSN.parse(responseBody);

//打印

console.log(result.access_token);需要获取的参数的键

//把access_token设置为全局变量

pm.globals.set("access_token",result.access_token);

第二个接口
{{access_token}}

  2、使用正则表达式提取器实现接口关联

//使用正则表达式提取器实现接口关联,match匹配
var result=responseBody.match(new RegExp('"acccess_token":"(.*?)"'));
console.log(result[1]);
//设置全局变量
pm.golbals.set("access_token",result[1]);

 

 八、postman内置动态参数以及自定义动态参数

1、postman内置动态参数(加在参数后):

        {{$timestamp}} 生成当前时间的时间戳

        {{$randomInt}} 生成0-1000之间的随机数

        {{$guid}} 生成一个随机的GUID字符串

2、自定义动态参数:

//手动的获得时间戳
var times=Data.now();
//设置为全局变量
pm.globals.set("times",time);

//使用时使用:{{times}}

九、postman断言处理(常用的)

status code:Code is 200 检查返回的状态码是否为200

Response body:Contains string 检查响应中包括其指定字符串

Response body:Json value check 检查响应中其中json的值

Response body:is equal to a string 检查响应等于一个字符串

Response body:Content-type... 检查是否包含响应头Content-type

Response time is less than 200ms:检查请求耗时小于200ms

在断言中获取自定义全局变量(动态参数)的方法:

pm.globals.get("variable_key");

globals["variable_key"]

globals.variable_key

全局断言

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值