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

news/2024/4/28 5:19:02/文章来源:https://blog.csdn.net/weixin_45272371/article/details/130106818

文章目录

  • 前言
  • 一、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种处理数据的方式。就看看自己喜欢用哪种了。


 

总结

暂无

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_286197.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

source insight4.0使用技巧总结

一、技巧1:查看函数调用关系 步骤 1:在主菜单中点击下图中的按钮 图 1 打开relation界面 步骤 2:在弹出的relation界面点击“设置”按钮, 图2 点击“设置”按钮 步骤3: 在“设置”界面中,“Levels”选择…

AC7811-FOC无感控制代码详解

目录 矢量控制原理 矢量控制框图 电流采样方式 电流在整个控制过程中的传递 采样关键点 三电阻 双电阻 单电阻 三者对比 坐标变换 dq轴电流的PI控制 启动方式 启动波形 脉冲注入 高频注入 Startup 预定位到指定角度 PulseInject_api hfi_api Speed loop s…

前端学习:HTML块、类、Id

目录 快 一、块元素、内联元素 二、HTML 元素 三、HTML元素 类 一、分类块级元素 二、分类行内元素 Id 一、使用 id 属性 二、 class与ID的差异 三、总结 快 一、块元素、内联元素 大多数HTML元素被定义为块级元素或内联元素。 块级元素在浏览器显示时,通常会…

FTP-----局域网内部传输文件(1)

在日常工作中,如果需要跨设备的传输文件,您需要借助USB数据线或者借助应用实现无线互联,将所需文件传输到对应设备,这一来一去,花费的时间与精力变多了,那么,怎么实现不使用第三方软件来实现跨设…

3-5年以上的功能测试如何进阶自动化?【附学习路线】

做为功能测试人员来讲,从发展方向上可分两个方面: 1、业务流程方向 2、专业技能方向。 当确定好方向后,接下来就是如何达到了。(文末自动化测试学习资料分享) 一、业务流程方向 1、熟悉底层的业务 作为功能测试工程师来讲,了解…

【C++高级】手写线程池项目-经典死锁问题分析-简历项目输出指导

作为五大池之一, 线程池的应用非常广 泛,不管是客户端程序,还是后台服务程序,掌握线程池,是提高业务处理能力的必备模块 本课程将带你从零开始,设计一个支持fixed和cached模式的线程池,玩转C11、…

IGA_PLSM3D的理解1

文章目录前言一、IgaTop3D_FAST.m给的参数二、Material properties 材料特性对Geom_Mod3D的理解对Pre_IGA3D的理解 输出1-----CtrPts: 输出2-----Ele: 输出3-----GauPts:前言 只是为方便学习,不做其他用途 一、IgaTop3D_FAST.m给的…

Python爬虫-某跨境电商(AM)搜索热词

前言 本文是该专栏的第42篇,后面会持续分享python爬虫干货知识,记得关注。 关于某跨境电商(AM),本专栏前面有单独详细介绍过,获取配送地的cookie信息以及商品库存数据,感兴趣的同学可往前翻阅。 1. python爬虫|爬取某跨境电商AM的商品库存数据(Selenium实战) 2. Seleni…

5.39 综合案例2.0 - STM32蓝牙遥控小车1(手机APP遥控)

综合案例2.0 - 蓝牙遥控小车1- 手机APP遥控成品展示案例说明器件说明连线小车源码手机遥控APPAPP使用说明成品展示 案例说明 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机APP,语音模块控制,Ha…

15-721 chapter2 内存数据库

Background 随着时代的发展,DRAM可以容纳足够的便宜,容量也变大了。对于数据库来说,数据完全可以fit in memory,但同时面向disk的数据库架构不能很好的发挥这个特性 这张图是disk database的cpu instruction cost 想buffer pool…

第5章 继承-Java核心技术·卷1

文章目录Java与C不同基本概念继承:基于已有的类创建新的类。构造器多态定义超类变量可以引用所有的子类对象,但子类变量不能引用超类对象。子类引用的数组可以转换成超类引用的数组覆写返回子类型强制类型转换阻止继承:final类和方法多态 vs …

ROS学习-ROS简介

文章目录1.ROS1.1 ROS概念1.2 ROS特征1.3 ROS特点1.4 ROS版本1.5 ROS程序其他名词介绍1. 元操作系统2. IDL 接口定义语言一些网站1.ROS 1.1 ROS概念 ROS(Robot Operating System,机器人操作系统) ROS 是一个适用于机器人的开源的元操作系统,提供一系列…

linux驱动开发 - 04_Linux 设备树学习 - DTS语法

文章目录Linux 设备树学习 - DTS语法1 什么是设备树?2 DTS、DTB和DTC3 DTS 语法3.1 dtsi 头文件3.2 设备节点3.3 标准属性1、compatible 属性2、model 属性3、status 属性4、#address-cells 和#size-cells 属性5、reg 属性6、ranges 属性7、name 属性8、device_type…

人工智能专题-知识表示

文章目录人工智能专题-知识表示大纲2.1 知识表示的概念2.1.1 知识表示观点2.1.2 知识表示的要求2.2 一阶谓词逻辑表示法2.2.1 一阶谓词概念2.2.2 谓词逻辑表示方法2.3 产生式表示法2.4 语义网络表示法2.5 框架表示法人工智能专题-知识表示 大纲 大纲:掌握知识表示方…

思科路由器发现重大漏洞,解决方法是……

晚上好,我是老杨。 思科知名度高,待遇也好,很多网工心生向往,也有很多人考过思科认证的相关证书,对思科的印象还是不错吧? 而且,作为美国著名的网络设备厂商,思科是全球路由器巨头…

【面试】如何设计SaaS产品的数据权限?

文章目录前言数据权限是什么?设计原则整体方案RBAC模型怎么控制数据权限?1. 数据范围权限控制2. 业务对象操作权限控制3. 业务对象字段权限控制总结前言 一套系统的权限可以分为两类,数据权限和功能权限,今天我们从以下几个点&am…

【RabbitMQ】初识消息中间件MQ

目录 一、什么是MQ 二、MQ的优缺点 1、MQ的优点 1.应用解耦 2.削峰填谷 3.异步提速 2、MQ的缺点 1.可用性低 2.系统复杂度高 3.数据一致性问题 三、MQ使用场景 四、常见的MQ 一、什么是MQ MQ(Message Queue):消息队列&#xff0c…

代码随想录_二叉树_leetcode654 617

leetcode654 最大二叉树 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 …

【FPGA实验4】举重比赛机制

举重比赛有三名裁判,当运动员将杠铃举起后,须有两名或两名以上裁判认可,方可判定试举成功,若用A、B、C分别代表三名裁判的意见输入,同意为1,否定为0;F为裁判结果输出,试举成功时F1,试…

iPhone如何不用iTunes将视频传输到电脑上?

随着智能手机的普及,iPhone已经成为了人们生活中必不可少的一部分。而随着iPhone摄像功能的逐渐完善,越来越多的用户开始将iPhone作为拍摄视频的工具。 但是,将iPhone中的视频传输到电脑并进行后续编辑处理或者备份储存,对于许多…