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教程

https://www.cnblogs.com/fighter007/p/9162617.html 

posted @ 2020-04-15 19:09  LDM_datos  Views(314)  Comments(0)    收藏  举报