接口测试笔记

1、接口测试必修课

1、接口测试让“ 测试更早介入”这句话变为现实。
2、接口测试可以测试一些界面无法测试的范围。
3、发现一些范围更广的bug一套服务支持多种终端。后端,前端web,iOS,安卓。
4、接口测试更容易和自动化系统结合。开源测试平台。文件上传。
5、搭建接口自动化测试框架,测试工程师能力的分水岭。

2、什么是接口?

在系统中,所有的数据交互都是基于接口来实现的
接口是系统中提供数据服务的渠道
接口是基于网络协议进行数据的传输。所有的接口均是由服务端来实现的,与前端UI界面毫无关联
接口目前95%以上都是基于HTTP网络协议来进行数据传输的。
接口模板网络协议://IP:Port/path?args1=xxx&args2=xxx
所有的接口都会有其指定的URL,一般而言系统的接口都有接口文档进行描述。包括URL、参数、返回值的格式和内容等。
下发:Request请求
接收:Response响应
通过下发请求——经由网络协议传输至后端特定接口——接口执行运算——生成响应——返回至下发端。

http协议默认端口号为:  80
hhtps协议默认端口号为: 443

3、为什么要执行接口测试?

执行测试是为了尽早和不断地发现系统中存在的缺陷,为了保障软件的质量。
从功能角度而言,通过绕过前端,直接对系统的后端逻辑进行测试,用于确保后端逻辑的基本的质量。
但凡性能安全的相关测试,都是会基于接口测试来实现的。
在系统中,接口的变更相对而言非常少,都是处于基本稳定的状态。

4、基于Requests+python实现接口自动化

  1. 搭建环境,安装Requests库,通过pip install进行安装,如果用的是pycharm编译器,需要在工程中额外导入Requests
  2. 基于Requests库,模拟下发请求,校验接口的正确性。
    HTTP网络协议下,请求有制定的方法。主流的有Get、Post、(Input、Delete等)
    通过对接口文档的阅读,了解Get和Post分别请求于何种接口。一般在数据的查询中,应用Get数据的更新和提交中,用Post
    接口响应状态码:
    2** 表示请求成功
    3** 表示重定向
    4** 表示接口路径错误
    5** 表示系统内部异常

5、接口的定义

eg.键盘上的按键:qwer
接口是前后端沟通的桥梁,数据传输通道;
内部接口:服务与服务之间
外部接口:百度地图接口,支付宝接口等
最简单的接口长什么样子:如39.98.138.157:5001/api/demo
Eg. get接口:
在这里插入图片描述
Postman接口工具
在这里插入图片描述

6、Cookie和session

Cookie:标记为cookie的数据类型,记录网站信息,用户的习惯
Session:服务端用来记录用户的状态
清除cookie

7、curl(请求接口一个方式)复制

例如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将复制得到的curl粘贴导入到postman里面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Cookie最重要!
小技巧:
在这里插入图片描述

8、接口问题

随着测试脚本臃肿,管理脚本成为难题
团队协作,git管理
公共方法,数据封装
接口前置操作,连接数据库
多接口关联串成场景
协议有限(http,Dubbo)
Postman,jemter,RF已然不能满足现有需求,因有局限性。
——基于python语言、requests库、接口测试思维!
在这里插入图片描述

9、接口的请求信息一般从哪里获取

1、开发者工具
2、抓包
3、接口文档(接口地址,接口请求方法,参数,参数类型,请求头,返回值实例等信息)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接口是毫秒级别的?
没有断言的测试用例是没有灵魂的。断言!!!——assert
yaml文件的写法:https://blog.csdn.net/weixin_42353331/article/details/86575418
yaml的安装:pip install pyyaml
问题:代码冗余、不易于维护、复用性差

10、面试过程中遇到的问题

接口测试如何测试,cookie,token鉴权,接口关联——可用变量实现(全局、局部)
接口测试框架搭建无
你在做这些事情过程中遇到过什么问题,怎么解决的——学习反应能力

9、搭建测试框架思路

核心技术:
request,yaml,alluere,数据驱动,unitest,pytest,git,Jenkins持续集成,docker容器等;
收获:
得到一套落地有效的接口自动化方案
接口实操经验
提高思维开发,逻辑处理能力
适用于各种类型的项目,直接上手使用,团队使用,模板,直接写接口自动化用例
在这里插入图片描述
代码实例:

import requests
# 指定访问的接口url
url = ‘http://localhost::8080/interfaceTest/login’
# 接口需要传入的参数
para={
‘loginName’:’123456’,
‘pwd’:’123123’
}
# 发送get请求,默认就会返回response
res=requests.get(url,params=para) # res=requests.post(url,data=para)

print(res)	# 请求状态码:200等——<Response [200]>
# text和content都是获取响应文本内容的方法
print(res.text)
print(res.content)
print(type(res.text)) #——<class ‘str’>

在这里插入图片描述
在这里插入图片描述

10、jsonpath

Jsonpath在线解析器:http://www.atoolbox.net/Tool.php?Id=792
在这里插入图片描述
Jmeter
Jenkins可做定时任务
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值