接口自动化测试-Requests模块实战详解,一篇打通...

news2024/11/24 4:09:38

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

什么是requests?

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到, Requests是Python语言的第三方的库,专门用于发送HTTP请求

下载

pip install requests

请求方式

1、get请求

# GET无参请求
r = requests.get('http://www.baidu.com')
# GET有参请求

# 方法一
canshu = {"consName": "水瓶座","key":26183f3f48d787b5541aa3d0e767b359}
r = requests.get("http://web.juhe.cn:8080/constellation/getAll", params=canshu)
print(r)

# 方法二
r = requests.get("http://web.juhe.cn:8080/constellation/getAll?consName=水瓶座&key=26183f3f48d787b5541aa3d0e767b359")
print(r.text)

2、post请求

canshu = {"consName": "水瓶座", "key": "26183f3f48d787b5541aa3d0e767b359"}
r = requests.post("http://web.juhe.cn:8080/constellation/getAll", data=canshu)
print(r.text)

3、响应的内容

r.encoding                       # 获取当前的编码
r.encoding = 'utf-8'             # 设置编码
r.text                           # 以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content                        # 以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

r.headers                        # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

r.status_code                     # 响应状态码
r.raw                             # 返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()   
r.ok                              # 查看r.ok的布尔值便可以知道是否登陆成功
 #*特殊方法*#
r.json()                         # Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status()             # 失败请求(非200响应)抛出异常

4、超时设置

requests.get(url,timeout=1) # 超过等待时间则报错

5、添加请求头信息

requests.get(url,headers=headers) # 设置请求头

6、添加文件

requests.post(url, files=files) # 添加文件 

7、文件传输

url = 'http://httpbin.org/post' 
files = {'file': open('report.xls', 'rb')} 
r = requests.post(url, files=files)

requests+pytest+allure框架

1、读取csv文件

"""存储csv数据"""
url,params,method
http://web.juhe.cn:8080/constellation/getAll,{"consName":"水瓶座","key":26183f3f48d787b5541aa3d0e767b359},get
http://japi.juhe.cn/qqevaluate123/qq,{"qq":1640484095,"key":1e5a939231f3a1bf225050d7fe92f569},post
"""读取数据"""
import csv


class ReadCsvClass():
    def readCsv(self):
        li = []
        csv_open = csv.reader(open("../dataDemo/saveCSV.csv", "r", encoding="utf-8"))
        for i in csv_open:
            li.append(i)
        li = li[1:]
        return li


r = ReadCsvClass()
print(r.readCsv())
"""request请求接口返回状态码"""
import requests
from readDemo.readCsv import ReadCsvClass

r = ReadCsvClass()
cm = r.readCsv()


class CsvRequestsClass():
    def csvRequests(self):
        item = []
        for i in cm:
            if i[-1] == "get":
                res = requests.get(url=i[0], params=i[1])
                item.append(res.status_code)
            else:
                res = requests.post(url=i[0], data=i[1])
                print(res.url)
                item.append(res.status_code)
        return item


c = CsvRequestsClass()
cc = c.csvRequests()
print(cc)
"""pytest断言设置并结合allure生成测试报告"""
import pytest
import os
from useRequests.csvrequests import CsvRequestsClass

c = CsvRequestsClass()
cc = c.csvRequests()


class TestCSVClass():
    def testCsv(self):
        for i in cc:
            assert i == 200


if __name__ == '__main__':
    pytest.main(['--alluredir', '../reportCsv/result', 'test_csv.py'])
    split = 'allure ' + 'generate ' + '../reportCsv/result ' + '-o ' + '../reportCsv/html ' + '--clean'
    os.system(split)

C1

2、读取Excel文件

存储Excel数据

C2

"""读取Excel数据"""
from openpyxl import load_workbook


class ReadExcelClass():
    def readExcel(self):
        # 打开表
        workbook = load_workbook(r'F:\day--26\requests_test\dataDemo\saveExcel.xlsx')
        # 定位表单
        sheet = workbook['Sheet1']
        print(sheet.max_row)  # 3行
        print(sheet.max_column)  # 3列
        item = []  # 把所有行的数据放到列表中
        for i in range(2, sheet.max_row + 1):
            adict = {}  # 把每行的数据放到字典中
            for j in range(1, sheet.max_column + 1):
                adict[sheet.cell(1, j).value] = sheet.cell(i, j).value
            item.append(adict)
        return item


r = ReadExcelClass()
rr = r.readExcel()
print(rr)
"""request请求接口返回状态码"""
import requests
from readDemo.readExcel import ReadExcelClass

r = ReadExcelClass()
rr = r.readExcel()


class ExcelRequestsClass():
    def excelRequest(self):
        item = []
        for i in rr:
            if i["method"] == "get":
                res = requests.get(url=i["url"], params=i["params"])
                item.append(res.status_code)
            else:
                res = requests.post(url=i["url"], data=i["params"])
                item.append(res.status_code)
        return item


if __name__ == '__main__':
    e = ExcelRequestsClass()
    ee = e.excelRequest()
    print(ee)
"""pytest断言设置并结合allure生成测试报告"""
import os
import pytest
from useRequests.excelrequests import ExcelRequestsClass

e = ExcelRequestsClass()
ee = e.excelRequest()
for i in ee:
    print(i)


class TestExcel():
    def test_excel(self):
        for a in ee:
            assert a == 200


if __name__ == '__main__':
    pytest.main(['--alluredir', '../reportExcel/result', 'test_excel.py'])
    split = 'allure ' + 'generate ' + '../reportExcel/result ' + '-o ' + '../reportExcel/html ' + '--clean'
    os.system(split)

C3

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

奋斗是燃起内心的火焰,不论困境多么险峻,只要保持信念,砥砺前行,你将释放出无尽的潜能,开创出属于自己的辉煌。勇敢地去追逐梦想,坚持不懈,那些努力必将转化为无坚不摧的力量。

奋斗是自我超越的征程,踏遍山河,磨平岁月。不论环境如何,心怀使命,百折不挠地追求梦想。激发内心的力量,释放出无限的能量。

人生如逆水行舟,不进则退。坚持奋斗,拥抱挑战,才能超越平凡,谱写出属于自己的辉煌篇章。不论前路多崎岖,保持信念和勇气,努力奋斗,必将驶向成功的彼岸。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postman下载教程

目录 下载 安装 注意事项 看到很多小伙伴在问 Postman 下载的相关问题,花时间整理了下,下面教新入门的小伙伴如何去下载 Postman。 开始前我们可以先了解下:Postman 简介 下载 第一步:进入 Postman 官网 首先,我…

机器学习终极指南:特征工程(02/2) — 第 -2 部分

接上文:机器学习终极指南:特征工程(01/2) 五、处理不平衡数据 处理不平衡的数据是机器学习的一个重要方面。不平衡数据是指目标变量的分布不均匀,并且与另一个类相比,一个类的代表性不足。这可能导致模型…

NeuS环境配置

TypeError: Descriptors cannot not be created directly. pip install --upgrade protobuf pip install --upgrade tensorboard运行 python exp_runner.py --mode train --conf ./confs/wmask.conf --case bmvs_bearRuntimeError: indices should be either on cpu or on th…

二级考python和c语言哪个好,计算机二级python和c

大家好,小编来为大家解答以下问题,二级python和二级c语言哪个更吃香一些,二级python和二级c语言哪个更吃香一点,今天让我们一起来看看吧! 计算机二级貌似只是在校园里的自嗨,出来工作后并没有觉得这个证书有…

分布式事务原子性-TCC

一、分布式事务-原子性 随着数据量不断的变大,单机所能处理的数据总归是有上限的,所以现阶段分布式的应用系统在各个领域中遍地生花。接下来我们就来聊一下分布式系统中非常重 要的特性分布式事务的原子性功能。之前没有了解过分布式相关知识的读者可以…

一文带你迅速了解下Spring中的AOP

1. 什么是AOP? AOP(Aspect Oriented Programming):面向切面编程。 面向切面编程是一种思想,其实就是对某一类事情进行统一的处理。而 SpringAOP就是一种AOP的具体实现的框架。这就好比 IOC 和 DI 一样的关系。 上述就是对登录功…

Excel(1):表头或列头冻结

1.需求 对于较大的excel,通常需要固定一部分内容,另一份内容为可翻动。 2.解决方式 在视图中选择冻结窗格,需要注意的是,选择冻结窗格时,窗格的左上方的表格区域是固定不动的,只可以向下或者向右活动。

NPM与外部服务的集成(上)

目录 1、关于访问令牌 1.1 关于传统令牌 1.2 关于粒度访问令牌 2、创建和查看访问令牌 2.1 创建访问令牌 在网站上创建传统令牌 在网站上创建粒度访问令牌 使用CLI创建令牌 CIDR限制令牌错误 查看访问令牌 在网站上查看令牌 在CLI上查看令牌 令牌属性 1、关于访问令…

Ubuntu22关闭中上方弹出的消息提醒,Ubuntu22关闭开机后中上方弹出的消息提醒:logged in as a privileged user

一、问题描述 Ubuntu22关闭中上方弹出的消息提醒,Ubuntu22关闭开机后中上方弹出的消息提醒:logged in as a privileged user 二、问题分析 此弹出框为消息通知提示,关闭相应的消息通知即可 三、解决方案 1、打开设备 2、打开消息通知&…

c语言作业

作业一: 作业二: if语句后可以跟多条语句,用大括号括起来就行。 if语句中0表示假,非0表示真。 if语句是一种分支语句,可以实现单分支,也可以实现多分支。 else语句不一定和它的对齐的if语句相匹配。 …

Android应用开发(37)LTPO帧率测试基于Surfaceview

Android应用开发学习笔记——目录索引 参考android官网: Frame rate | Android media | Android Developers多重刷新率 | Android 开源项目 | Android Open Source ProjectWindowManager.LayoutParams | Android Developers 目前市面上旗舰手机基本都是…

AirServer是什么软件,手机屏幕投屏电脑神器

什么是 AirServer? AirServer 是适用于 Mac 和 PC 的先进的屏幕镜像接收器。 它允许您接收 AirPlay 和 Google Cast 流,类似于 Apple TV 或 Chromecast 设备。AirServer 可以将一个简单的大屏幕或投影仪变成一个通用的屏幕镜像接收器 ,是一款…

手势识别rtos小车(2)----蓝牙通信

在pycharm下面安装pybluez库 本人:win11python3.8pybluez2 第一步,直接在pycharm终端运行 pip install pybluez 一般都会直接报错 第二步,下载安装win11的SDK文件,Windows SDK - Windows 应用开发 | Microsoft Developer 第三步…

面试热题(验证二叉搜索树)

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉树 二叉树满足以上3个条件&#xff0c…

SpringMVC关于SSM的整合配置步骤

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaweb 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 SSM整合 一、创建工程1.1创建Maven工程1.2工程命名1.3检查…

Ubuntu常用配置

文章目录 1. 安装VMware虚拟机软件2. 下载Ubuntu镜像3. 创建Ubuntu虚拟机4. 设置屏幕分辨率5. 更改系统语言为中文6. 切换中文输入法7. 修改系统时间8. 修改锁屏时间9. 通过系统自带的应用商店安装软件10. 安装JDK11. 安装 IntelliJ IDEA12. 将左侧任务栏自动隐藏13. 安装docke…

机器学习终极指南:特征工程(01/2) — 第 -2 部分

西姆兰吉特辛格 一、介绍 欢迎来到“机器学习终极指南”的第二部分。在第一部分中,我们讨论了探索性数据分析 (EDA),这是机器学习管道中的关键步骤。在这一部分中,我们将深入研究特征工程,这是机器学习过程…

fiddler抓包工具的用法以及抓取手机报文定位bug

前言: fiddler抓包工具是日常测试中常用的一种bug定位工具 一 抓取https报文步骤 使用方法: 1 首先打开fiddler工具将证书导出 点击TOOLS------Options------Https-----Actions---选中第二个选项 2 把证书导出到桌面后 打开谷歌浏览器 设置---高级…

如何让你的图片服务也有类似OSS的图片处理功能

原文链接 前言 有自己机房的公司一般都有一套存储系统用于存储公司的图片、视频、音频、文件等数据,常见的存储系统有以NAS、FASTDFS为代表的传统文件存储,和以Minio为代表的对象存储系统,随着云服务的兴起很多公司逐渐将数据迁移到以阿里云…

MySql012——检索数据:创建计算字段(拼接字段、使用别名、执行算术计算)

准备工作1:在study库中创建表vendors,并插入数据 说明:vendors表包含供应商名和位置信息。 use study;CREATE TABLE vendors (vend_id int NOT NULL AUTO_INCREMENT,vend_name char(50) NOT NULL ,vend_address char(50) NULL ,…