接口测试——学习笔记


接口测试本质:就是测试接口能否正常的交互数据,权限控制以及异常场景。

接口返回数据的JSON详解

json格式:三组数据

{error_code:0,msg:“xxx”,data:[]}

error_code:错误码,0代表成功,msg:对错误码的中文说明,data:真正的返回的数据

  1. json就是一种数据类型,整型,小数,字符串。

  2. JSON由两组数据组成

MAP对象,键值对

{key:value,key:value}

数组

{value1,value2,value3}
{ 
"people":[ 
{
"firstName": "Brett",            
"lastName":"McLaughlin"        
},      
{        
"firstName":"Jason",
"lastName":"Hunter"
}
]
}

html格式

<html>
    <title></title>
    <body>
        <error_code>0</error_code>
        ...
    </body>
</html>

xml格式

<?xml?version="1.0" encodeing="utf-8">
	<error_code>0</error_code>
	...
</xml>

接口测试协议

webservice协议

接口地址:http:// xxx ?wsdl

http://192.168.xx.1:8080/addUser

http://192.168.xx.1:8080/delUser

http://192.168.xx.1:8080/updUser

http://192.168.xx.1:8080/selUser

soap协议,wsdl

restful规则:

get获取数据,post提交数据,put修改数据,delete删除数据。

http://192.168.xx.1:8080/user

dubbo协议

接口地址以dubbo://…

适用于少量数据的传输。大并发。

http协议

接口地址:http://

https=http+ssl安全传输协议 端口:443

http端口:80

什么是http协议?

http是超文本传输协议,主要适用于浏览器和服务器之间交互数据,交互有两个部分:

请求:get,post,put,delete

响应:1xx信息,2xx成功,3xx重定向(跳转不传值),4xx客户端错误,5xx服务器错误

请求部分包含:

请求行:请求方法,请求URL,HTTP协议及版本

报文头

报文体
在这里插入图片描述在这里插入图片描述响应部分包含:
在这里插入图片描述

企业接口测试的流程和方案

  1. 拿到api接口文档,熟悉接口业务:接口地址、鉴权、入参、出参、错误码。

  2. 接口计划和方案

    思路:

    正例:输入正常的入参,查看接口是否返回成功。

    反例:

    ​ 鉴权反例:鉴权为空,鉴权码错误,鉴权码已过期…

    ​ 参数反例:参数为空,参数类型异常,参数长度异常,错 误码的覆盖

    ​ 其他场景:分页异常

  3. 编写用例和评审

  4. 执行接口测试

  5. 输出接口测试报告

接口测试工具以及Postman介绍

接口测试工具:

postman,JMeter,soupui,apipost,fiddler,Charles

Postman请求部分的页签

Params:用于在get请求传参

Authorization: postman自带的鉴权功能

Headers:请求头

Body: post请求传参

  • ​ none: 没有参数
  • ​ form-data: 既有文件又有键值对
  • ​ x-www-form: 只传键值对
  • ​ raw: 创JSON,txt,xml,html,js
  • ​ binary: 把文件以二进制的方式传输

Pre-request-Script:接口请求之前的脚本,js

Tests:断言的代码

Cookies: postman的cookies管理器

code: 生产接口自动化脚本


Postman响应部分的页签

Body: 返回的数据

  • Pretty:以JSON格式展示
  • Raw:以文本的格式展示
  • Preview:以网页的格式展示

cookie:返回的cookie信息

Headers:响应头

TestResults:断言结果

status:状态码

time:消耗的时间

size:字节数

Postman内置的动态参数

企业当中做接口测试的时候经常会出现接口不能把参数写死。

时间戳:{{$timestamp}}

生成1000以内的随机整数:{{$randomint}}

生成一个GUID的字符串:{{$guid}} 很长的一个字符串

Postman环境变量和全局变量

开发环境、测试环境、预发布环境、线上环境

不管是环境变量也好,还是Globals也好都是全局变量

接口关联

JSON提取器
在这里插入图片描述正则表达式提取器
在这里插入图片描述

Postman断言

//八种断言方式,八大元素定位

//断言返回码为200 Status code: Code is 200

//一般用于状态断言

pm.test(“Status code is 200”, function () {

pm.response.to.have.status(200);

});

//断言返回的结果中包含有一个指定的字符串 Response body: Contains string

//用于业务断言

pm.test(“Body matches string”, function () {

pm.expect(pm.response.text()).to.include(“string_you_want_to_search”);

});

//对返回的结果做JOSN字段检查 Response body: JOSN value check

//用于业务断言

pm.test(“Your test name”, function () {

var jsonData = pm.response.json();

pm.expect(jsonData.value).to.eql(100);

});

//断言返回的结果等于一个字符串 Response body: Is equal to a string

//用于业务断言

pm.test(“Body is correct”, function () {

pm.response.to.have.body(“response_body_string”);

});

//断言响应头中包含有指定的响应头 Response headers: Content-Type header check

pm.test(“Content-Type is present”, function () {

pm.response.to.have.header(“Content-Type”);

});

//断言接口响应的时间小于200毫秒 Response time is less than 200ms

//用于性能断言

pm.test(“Response time is less than 200ms”, function () {

pm.expect(pm.response.responseTime).to.be.below(200);

});

//断言一个post请求的返回的状态码是否在指定的范围里面 Status code: Successful POST request

pm.test(“Successful POST request”, function () {

pm.expect(pm.response.code).to.be.oneOf([201, 202]);

});

//断言返回的状态码信息中包含指定的字符串 Status code: Code name has string

pm.test(“Status code name has string”, function () {

pm.response.to.have.status(“Created”);

});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值