0


接口自动化【一】(抓取后台登录接口+postman请求通过+requests请求通过+json字典区别)

文章目录

  • 一、requests库的使用
  • 二、json和字典的区别
  • 三、后端登录接口-请求数据生成
  • 四、接口自动化-对应电商项目中的功能
  • 五、来自postman的代码-后端登录

前言

记录:json和字典的区别,json和字段的相互转化;postman发送请求与Python中代码发送请求的区别。


一、requests库的使用

安装:
pip install requests

官方文档:https://docs.python-requests.org/zh_CN/latest/

1、导入requests

2、requests的请求方法:
requests.get(url,param=None) 发起get请求。params是请求参数,是追加在url后面的。字典类型。

requests.post(url,data=None,json=None) 发起post请求:

data参数:任意的content-type都可以用参数传参。

不指明content-type的情况下,默认的content-type是x-www-form-urlencoded,且是字典格式。

如果是其它的content-type,需要在headers当中,加上content-type类型。

json参数: 给content-type为application/json格式使用的。

字典类型 不需要在header当中指定content-type

**以上2个方法,都是使用的requests.request(method,url,kwargs)

Requests类 -
Response类 -
resp.headers是响应头
resp.status_code是响应状态码
resp.text是字符串类型

二、json和字典的区别

学习地址:https://www.w3cschool.cn/json/

一些区别:

字符串:
json: 双引号。
python字典:单引双号都可以。

python: None
java/javascript: null(python不认识。如果响应结果当中有null, 需要转换成None)

布尔值:
json: true,false
python:True, False

字典:数据类型。
json: 数据格式。 json格式的字符串

注意:json其实是字符串(只不过这种字符串是格式化了的字符串,也就是长得像字典的字符串),字典是数据类型

json格式的字符串和字典之间的转换:json库

内置库:json
json.loads(json串) 把json串,转换成python字典
json.dumps(python字典对象,indent=空格个数) 把python字典,转换成json串。indent是格式化展示json串

可以这样记忆:load向下(向下就更高级转化成字典),dump向上(向上就是向原始数据转化,就是字符串)

关于requests处理json参数的文章:
https://www.cnblogs.com/Simple-Small/p/9830270.html

举例(不完善):

建议看我另一篇文章有详细阐述(Python中的接口测试中关于request方法中的json和data参数接收数据的区别_python request接收json_宏基骑士的博客-CSDN博客)

三、后端登录接口-请求数据生成

免费公开的api: 聚合数据 - https://www.juhe.cn/docs?bd_vid=7361015517896645400

举例(一个登录接口):
url: http://mall.lemonban.com:8108/adminLogin

method: post

请求数据:

    t(可选): 时间戳(13位)  int(time.time()*1000)

    principal(必传): 用户名

    credentials(必传): 密码

    sessionUUID(可选):uuid

    imageCode(必传): 验证码

注意点:

1、关于Python生成UUID

文章:https://blog.csdn.net/yl416306434/article/details/80569688

2、验证码:

1)万能验证码:lemon

2)第三方打码平台: 图鉴(http://www.ttshitu.com/)

代码截图(验证码为万能验证码时):

四、接口自动化-对应电商项目中的功能

举例:

1、登录后台管理
2、添加一个商品
3、注册前台用户
4、登录前台用户
5、购买、下订单、支付

五、来自postman的代码-后端登录

第一种写法(直接拿取postman当中的Python写法)

另一种写法(不使用json库去序列化字典):

注意:我们从第二写法很第一种写法对比,发现第二种写法少了请求头,那么想想这是为什么呢?

因为,我们使用第一种方式时,原本data默认的是x-www-form-urlencoded这种格式,是不需要指明请求头的,那么使用其他格式的时候,需要在请求头里面指明 'Content-Type': 'application/json'。当然这里只是针对data传参才会特别去指明请求头。

如果使用的是第二方式,那么就不需要在请求头里面指明 'Content-Type': 因为有个关键字参数json,这个就直接自动转化成了json格式的字符串,其实对应postman中,就是raw(原始数据),而这个原始时间就是json格式。

也就是说:Python里面提供了2种处理数据的方式。就看看自己喜欢用哪种了。


总结

暂无


本文转载自: https://blog.csdn.net/weixin_45272371/article/details/130106818
版权归原作者 宏基骑士 所有, 如有侵权,请联系我们删除。

“接口自动化【一】(抓取后台登录接口+postman请求通过+requests请求通过+json字典区别)”的评论:

还没有评论