python笔记1:接口测试基础+postman+charles
一,接口理论
1.接口的定义:由于前后端开发语言不一致,无法进行交互,所以需要接口来交互,接口会返回一种通用的数据类型,所有的语言都认识-----------返回数据是json
前端:负责展示 的,分为app和web
开发语言:
web: html,js,css
iso:objet-c,swift
android:android
后端:负责主要的逻辑部分,负责各种操作数据库
开发语言:java, python,php,go等等
(解释性语言:代码运行一行,就编译一行,python, php, java--class
编译性语言:在运行之前,就编译好了二进制文件, C,C++
)
2.get 请求和post请求
如果是get请求,不需要借助任何工具,直接在浏览器就能调接口
接口地址+?+参数
http://api.xxx.cn/api/user/stu_info?stu_name=小黑
如果多个参数,参数之间用&连接
接口地址+?+参数&参数
http://api.xxx.cn/api/user/stu_info?stu_name=小黑&age=118
备注:参数不要加引号
如果url是中文或者有特殊符号,传输过程中url会编码;
例如:http://api.xxxxx.cn/api/user/stu_info%EF%BC%9Fstu_name=%E5%B0%8F%E9%BB%91
如果是英文,则不会编码
get和post请求的区别:
get用来向服务器获取数据
post用来向服务器发送数据
请求头:存放一些额外的信息,比如用的什么浏览器,客户端接受数据的类型、
请求体: 发送的数据
get请求没有请求体,只有url和请求头,数据在url里面放的
post请求
http状态码:
200请求成功,并且返回
2开头的代表请求成功
404代表访问的url不存在
4开头的代表客户端的问题
5开头的代表服务端的问题
3.cookie 和session
cookie: 存在客户端的一个键值对
session:存在服务端的一个键值对
如何在浏览器中查找cookie:
以京东为例
1.登录
2.右键-检查-application

4.浏览器中如何抓包
右键 - 检查 - Network - XHR
备注:XHR里面只是调后端接口的请求

二,postman测接口
1.查询学生信息接口
备注:参数写在params里面

2.登录接口
备注:参数写在body里面的form-data里面
form-data和x-www-form-urlencoded的区别是:x-www-form-urlencoded不能上传多媒体文件而form-data可以
因为x-formdata的不能传文件,所以form-data和x-form-data http在传输过程中用的分割数据的符号不一样,后台处理的时候取值方式也不一样

3.添加学生信息接口
如果接口规定入参格式是json, 那么需要在body--raw--json里面填写参数,写成json格式
如果规定的参数是int类型,加引号也没事,都是数字就行
备注:键和值之间还是用冒号连接
键值对之间是逗号分隔,最后一个键值对后面不加符号

4. 金币充值接口
从查询学生信息接口中返回的数据中找到学生的id,然后用在这个接口里面
必须登录之后才能充值,所以需要在header里面传cookie(如果接口文档中规定了传cookie的形式,就采用文档中规定的形式)


5. 文件上传
参数名后面的类型选择file

6.定义变量
在global里面设置变量,然后在接口地址里面用{{}}调用


7.postman做接口自动化
(1)参数化
1.建立一个txt文件,里面写上变量名称和数据

2.将需要参数化的数据参数化

3.打开runner,设置数值,运行


(2)设置检查点
点击右侧的:response body:Contains string
 
(3) 动态添加检查点
步骤:
1.点击Tests

2.点击右侧的response body:Contains string
 
3.点击右侧的 get a variable,写上要断言的变量

4.把pm.variables.get("id");后面的引号去掉
把pm.variables.get("id")放在include后面的括号中

(4)精确匹配参数

pm.test("检查user sex的", function () {
 var jsonData = pm.response.json(); //获取到接口返回的数据
    pm.expect(jsonData.stu_info[0].sex).to.eql(pm.variables.get("sex"));
});
stu_info[0].sex: stu_info代表返回数据中列表的名称,[0]代表列表中的第一个json数据,.sex代表jason数据中的键sex,

三, charles
(一).如何抓包
勾选windows proxy才能抓到电脑上的包

2.选中要设置断点的接口,右键,选中breakpoint,就能拦住这个请求

3. 拦截住请求后,在edit request里面可以修改请求,修改完成后,点击execute把这条请求放出去

4. 请求返回后,在edit response里面可以修改返回的的结果,修改完成后点击excute,请求的服务端数据返回客户端
 
5. proxy-breakpoint settings可以启用和禁用断点

 
6.模拟弱网

 
(二)如何抓手机上的包
1.保证手机和电脑在同一个局域网内
2.手机上设置代理,代理到你的电脑上
如何设置:
找到电脑端ip地址:

 
iso:

 
 
android:


 
端口号:8888
主机名:跟电脑端保持一致
charles抓移动端https教程
https://www.jianshu.com/p/674116a223cb
抓电脑端https教程
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号