接口自动化测试(一)Requests模块基本操作

2023-11-06

 字符串解码和查看请求信息

# lebo='天津杰森'
# print(lebo)
# 字符串编码
# lebo_text=lebo.encode()
#print(lebo_text)
# 字符串解码
# print(lebo_text.decode())

import requests

url='http://www.baidu.com'
# 发起get请求
response=requests.get(url)
# 查看状态码
# print(response.status_code)
# 响应头
# print(response.headers)
# 请求头
print(response.request.headers)

# 指定utf-8格式,进行解码
# response.encoding='utf-8'
# print(response.text)

# 默认使用utf-8进行解码
# print(response.content.decode())

发送get请求

import requests

# url='https://www.baidu.com'
url='https://www.zhihu.com'

#构建请求头
headers={
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}

response=requests.get(url,headers=headers)
#打印response对应的request请求头
print(response.request.headers)
#打印响应状态吗
print(response.status_code)
# print(response.content.decode())

pip list打开编辑器所有已安装的包 

requests模块文档:http://cn.python-requests.org/zh_CN/latest/ 

 

 保存网页到本地

​​import requests

url='https://www.baidu.com/s'

#构建请求头
headers={
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
params={
	'wd':'python'
}
response=requests.get(url,headers=headers,params=params)

with open('test.html','w',encoding='utf-8') as f:
	f.write(response.content.decode())

发送请求

import requests

class login(object):
	def __init__(self):
		self.url=' http://106.13.46.164:8080/iwebshop/index.php?controller=simple&action=login_act'
		self.data={
			'login_info': 'zhang',
			'password': '111111'
				   }
		self.headers={
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}

	def post_method(self):
		response=requests.post(url=self.url,headers=self.headers,data=self.data)
		return response.content
if __name__=='__main__':
	login=login()
	res=login.post_method()

	with open('test.html', 'w', encoding='utf-8') as f:
		f.write(res.decode())
	# 断言是否登录成功
	assert 'zhang' in res.decode()

jason接口

import requests
import json

url='http://106.13.46.164:8080/iwebshop/index.php?controller=simple&action=joinCart&goods_id=147&random=0.771087505969752&type=goods'

#构建请求头
headers={
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
response=requests.get(url,headers=headers)
print(response.content.decode('unicode-escape'))
# jason 格式转换为字典
dict_data=json.loads(response.content)

print(dict_data)
# 断言 false 小写传过来变为大写
assert dict_data['isError'] is False

# with open('test.html','w',encoding='utf-8') as f:
# 	f.write(response.content.decode())

设置代理

import requests

class login(object):
	def __init__(self):
		self.url=' http://106.13.46.164:8080/iwebshop/index.php?controller=simple&action=login_act'
		self.data={
			'login_info': 'zhang',
			'password': '111111'
				   }
		self.headers={
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
		}
		self.proxies = {
			'http': 'http://127.0.0.1:8888'
		}

	def post_method(self):
		response=requests.post(url=self.url,headers=self.headers,data=self.data,proxies=self.proxies)
		return response.content
if __name__=='__main__':
	login=login()
	res=login.post_method()

	# with open('test.html', 'w', encoding='utf-8') as f:
	# 	f.write(res.decode())
	# assert 'zhang' in res.decode()

selenium结合requests 后边在进行整理  切记

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口自动化测试(一)Requests模块基本操作 的相关文章

  • Source Insight 3.5和Source Insight 4.0的安装

    系列文章目录 Source Insight是一个功能非常强大的C C 的代码阅读器 通过工程的管理 Source Insight可实现多文件代码中 C工程或C和ASM的混合工程 的变量 函数的快速定位和搜索 并且对每个打开的源程序 C或C
  • MySQL-Centos下MySQL5.7安装教程

    MySQL安装教程 一 卸载MySQL 二 安装MySQL 三 mysql登录 四 修改配置文件 一 卸载MySQL 1 如果你的机器上mysqld服务器还在运行 那么第一步就是要停掉服务 systemctl stop mysqld 2 查

随机推荐

  • SpringBoot(五)SpringBoot事务

    在实际开发项目时 程序并不是总会按照正常的流程去执行 有时候线上可能出现一些无法预知的问题 任何一步操作都有可能发生异常 异常则会导致后续的操作无法完成 此时由于业务逻辑并未正确的完成 所以在之前操作过数据库的动作并不可靠 需要在这种情况下
  • Hive-安装与配置(1)

    大数据学习记录篇 持续更新中 个人主页 beixi 本文章收录于专栏 点击传送 大数据学习 持续更新中 感谢各位前辈朋友们支持学习 文章目录 1 Hive环境介绍 2 搭建环境准备 3 建立Hive元数据库 4 安装配置Hive 1 Hiv
  • Unity+Vuforia SDKAR开发系列教程--2.1.1 vuforia 4.0 sdk

    Vuforia sdk是高通公司开发的增强现实sdk vuforia结合unity可以实现AR 增强现实 解决方案 Vuforia sdk支持的识别目标种类还是比较多的比如 图片识别 images Targets 圆柱识别 cylinder
  • firefox不兼容java,JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结

    今天测试代码时 发现不少IE可以运行的ajax 但在FF中报错 IE和Firefox 火狐 在JavaScript方面的不兼容及统一方法总结如下 需要的朋友可以看下 对于以后的代码书写一定要考虑到多浏览器的兼容性 1 兼容firefox的
  • 抖音上情侣玩的小游戏--猜数字 单身狗 没朋友也能玩 附HTML源码

    先上图 代码如下 直接运行即可 欢迎各位大佬提意见
  • 软件工程基础知识--系统设计

    系统设计的主要目的就是为系统制定蓝图 在各种技术和实施方法中权衡利弊 精心设计 合理地使用各种资源 最终勾画出新系统的详细设计方案 系统设计的主要内容包括新系统总体结构设计 代码设计 输出设计 输入设计 处理过程设计 数据存储设计 用户界面
  • LINUX: 在不重启各自socket程序情况下, 断开ESTAB的TCP链接

    一说起TCP 就是什么三次握手 四次挥手 而这次想讨论的是 在不重启各自socket程序情况下 将ESTABLED链接断开 情景模拟 简单点 在同一个机器 通过 nc 来实现 server 和 client 吧 Server nc l p
  • 用户角色&用户画像

    用户角色 用户角色 user personal 户 是 个集合体 不是指某个具体的 是从用户群体中抽象出来的典型用户 一般包含以下信息 个人基本信息 性别 年龄 性格 学历 婚姻 爱好 职业 户的使 场景 与产品使用相关的具体情境 用户目标
  • 贝叶斯网络详解

    0x01 贝叶斯网络概述 有时我们需要计算一个不确定原因的概率给出一些观察到的证据 在这些情况下可以使用贝叶斯方法 贝叶斯网络 bayesian network 是一种概率图形模型 它在图形模型中显式捕获已知的有向边的条件依赖性 它通过有向
  • import tensorflow 出现DLL load failed: 找不到指定模块\Failed to load the native TensorFlow runtime问题等的解决方法

    import tensorflow 出现DLL load failed 找不到指定模块 Failed to load the native TensorFlow runtime ERROR root Internal Python erro
  • maven——在build中配置resource,配置文件无法被导出或生效的问题

    由于maven约定大于配置 所以可能遇到配置文件 无法被导出或生效的问题 解决方案 pom xml文件中加入下面代码
  • ARM 在Unity3D 中的美术优化解决方案 2, 几何体

    2 几何体 简介 在本教程中 我们将简要介绍本项目的学习目标 优化移动 3D 应用程序中的几何体 1 概述 3D 移动应用程序中的大多数对象很可能都是使用几何体表示的 几何体是需要处理的最常见的数据 因此有必要仔细考虑其实现和优化 本项目将
  • STM32:寄存器、存储器

    目录 1 什么是存储器映射 2 什么是寄存器映射 3 C语言对寄存器的封装 1 首先确定总线基地址 下表中的第二列 2 确定外设基地址 3 确定寄存器地址 1 什么是存储器映射 存储器本身是没有地址之分的 就像一间间小仓库 由芯片厂家或者用
  • html中tab页怎么写,html如何实现tab页面切换

    html实现tab页面切换的方法 首先创建一个类名为wrap的div当作容器 然后创建四个label标签 在每一个label中创建一个span标签 最后创建一个div作为这个导航项 本教程操作环境 windows7系统 html5版 DEL
  • 在html中显示地图

    在html中显示地图 步骤1 打开 百度地图生成器 的网址 http api map baidu com lbsapi creatmap index html 步骤2 在百度地图生成器中定位自己需要的位置 并设置图标 步骤3 完成设置后 点
  • 全栈开发流程——数据表的分析与创建详解实战演示(一)

    作者介绍 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 React从入门到精通 前端炫酷代码分享 从0到英雄 vue成神之路
  • EHCI控制器(4)——device模式数据传输模型

    4 device模式数据传输模型 4 1控制传输 4 1 1Setup Packect 4 1 1 1配置OUT端点0特性 4 1 1 2配置OUT端点0传输大小 4 1 1 3配置DMA描述符 4 1 1 4更新DMA描述符地址 4 1
  • c语言作业——阶梯电价

    为了提倡居民节约用电 某省电力公司执行 阶梯电价 安装一户一表的居民用户电价分为两个 阶梯 月用电量50千瓦时 含50千瓦时 以内的 电价为0 53元 千瓦时 超过50千瓦时的 超出部分的用电量 电价上调0 05元 千瓦时 请编写程序计算电
  • YYF签到签退

    前端传来的是 sid atype adesc sid 学号 atype 要签到还是签退 签到传0 签退传1 Controller package com chinasofti fwgl ctrl import java util HashM
  • 接口自动化测试(一)Requests模块基本操作

    字符串解码和查看请求信息 lebo 天津杰森 print lebo 字符串编码 lebo text lebo encode print lebo text 字符串解码 print lebo text decode import reques