当前位置: 首页 > news >正文

天花板级,Python接口自动化测试-接口关联封装调用(实例)

目录:导读

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


前言

流程相关的接口,主要用 session 关联,如果写成函数,s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便。以发布文章为例

接口封装大致流程

1、在接口测试中,有些接口经常会被用到比如登录的接口,这时候我们可以每个接口都封装成一个方法,如:登录、保存草稿、发布随笔、删除随笔,这四个接口就可以写成四个方法

2、接口封装好了后,后面我们写用例那就直接调用封装好的接口就行了,有些参数,可以参数化,如保存草稿的 title 和 body 两个参数是动态的。调用时直接将其传入方法中,就可以了

3、像这种流程类的接口,后面的会依赖前面的,我们就可以通过 session将其关联起来

4、将自动化测试脚本保存到 login.py文件中,这样就可以是脚本和业务分离

实战实例

第一步:在pycharm中左上角点击“file”,然后点击“New Project”,修改名字为“jiekou”,点击“Create”

31

第二步:在jiekou文件夹下,分别创建python package分别命名为“blog”和“case”

32

第三步:都完成后,如下

33

第四步:在login.py文件中编辑自动化测试脚本

34

用例导入接口
1、导入上面 login.py 模块写的接口自动化测试脚本

35

2、在test_01.py中编辑测试用例

36

参考代码

login.py文件

import requests
import urllib3urllib3.disable_warnings()
import warningswarnings.simplefilter("ignore", ResourceWarning)class Blog():def __init__(self, s):s = requests.session()  # 全局参数self.s = sdef login(self):'''登录接口'''url = "http://localhost:8080/jenkins/j_acegi_security_check"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}  # get方法其它加个ser-Agent就可以了d = {"j_username": "admin","j_password": "111111","from": "","Submit": u"登录","remember_me": "on"}s = requests.session()r = s.post(url, headers=headers, data=d)# print (r.content.decode('utf-8'))# 正则表达式提取账号和登录按钮import ret = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8'))  # 用python3的这里r.content需要解码print(t[0])print(t[1])def get_postid(self, r2_url):'''正则表达式提取'''import repostid = re.findall(r"postid=(.+?)&", r2_url)print(postid)  # 这里是 list []# 提取为字符串print(postid[0])return postid[0]def save(self, title, body):'''保存草稿箱:参数 1:title # 标题参数 2:body # 中文'''url2 = "https://i.cnblogs.com/EditPosts.aspx?opt=1"d = {"__VIEWSTATE": "","__VIEWSTATEGENERATOR": "FE27D343","Editor$Edit$txbTitle": title,"Editor$Edit$EditorBody": "<p>%s</p>" % body,"Editor$Edit$Advanced$ckbPublished": "on","Editor$Edit$Advanced$chkDisplayHomePage": "on","Editor$Edit$Advanced$chkComments": "on","Editor$Edit$Advanced$chkMainSyndication": "on","Editor$Edit$lkbDraft": "存为草稿",}r2 = self.s.post(url2, data=d, verify=False)  # 保存草稿箱print(r2.url)return r2.urldef del_tie(self, postid):'''删除帖子'''del_json = {"postId": postid}del_url = "https://i.cnblogs.com/post/delete"r3 = self.s.post(del_url, json=del_json, verify=False)print(r3.json()["isSuccess"])return r3.json()if __name__ == "__main__":s = requests.session()Blog(s).login()

test_01.py

import unittest
import requests
import warnings
from blog.login import Blogclass Test(unittest.TestCase):def setUp(self):warnings.simplefilter("ignore", ResourceWarning)s = requests.session()self.blog = Blog(s)def test_login_01(self):self.blog.login()print(result)print(type(result))print(result["success"])  # 登录,获取结果self.assertEqual(result["success"], True)  # 拿结果断言def test_del_02(self):# 第一步:登录self.blog.login()# 第二步:保存r2_url = self.blog.save(title="流程类接口关联", body="学习和使用封装与调用--流程类接口关联")pid = self.blog.get_postid(r2_url)# 第三步:删除result = self.blog.del_tie(pid)print(result)self.assertEqual(result["isSuccess"], True)if __name__ == "__main__":unittest.main()
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生之旅,充满艰辛与风雨,但只要心怀梦想,敢于追逐,勇往直前,终将获得耀眼的成功之光。不放弃,不言败,坚持奋斗,你将书写属于自己的壮丽传奇,创造无限可能!

在追逐梦想的征程中,不要畏惧失败与挑战,坚持努力,不断超越自我。因为只有奋斗才能成就辉煌,只有拼搏才能收获喜悦。相信自己的能力,勇往直前,你将开启一段不平凡的人生旅程!

努力不是选择,而是唯一的可能。不论遇到多大的困难与挑战,都要坚持前行,勇往直前。相信自己的能力,发挥潜力,每一步都将离梦想更近一步。

相关文章:

天花板级,Python接口自动化测试-接口关联封装调用(实例)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 流程相关的接口&a…...

yolov5代码解读之yolo.py【网络结构】

​这个文件阿对于做模型修改、模型创新有很好大好处。 首先加载一些python库和模块&#xff1a; 如果要执行这段代码&#xff0c;直接在终端输入python yolo.py. yolov5的模型定义和网络搭建都用到了model这个类(也就是以下图片展示的东西)&#xff1a;&#xff08;以前代码没…...

Docker之jenkins部署harbor在harbor中完成部署

Docker之jenkins部署harbor在harbor中完成部署 1、harbor作用 Harbor允许用户用命令行工具对容器镜像及其他Artifact进行推送和拉取&#xff0c;并提供了图形管理界面帮助用户查阅和删除这些Artifact。在Harbor 2.0版本中&#xff0c;除容器镜像外&#xff0c;Harbor对符合OCI…...

安装Jenkins

一、什么是Jenkins Jenkins是一个开源软件项目&#xff0c;是基于Java开发的。我们可以利用Jenkins来实现持续集成的功能。 因为Jenkins是基于Java开发的&#xff0c;所以在安装Jenkins之前首先需要安装Java的JDK。 二、安装Jenkins 在Windows平台上面安装Jenkins共有两种方式…...

大运空瓶行动,绘就生态文明画卷

随着成都第31届世界大学生夏季运动会赛事的成功举办&#xff0c;为了倡导节约水资源、绿色大运&#xff0c;在此之前成都电视2台《城视民生》栏目面向全市发起“大运空瓶行动”的倡议&#xff0c;呼吁市民杜绝水资源浪费&#xff0c;喝完瓶中水&#xff0c;并鼓励市民积极参与到…...

tomcat7.exe 启动闪退解决

标题tomcat7.exe 启动闪退解决 双击tomcat7.exe启动&#xff0c;但是出现闪退问题&#xff0c;无法启动tomcat 解决&#xff1a; 1.解决 tomcat7.exe 启动闪退解决 第一步&#xff1a;双击打开tomcat7w.exe 文件 如果出现 “指定的服务未安装。 Unable to open the service ‘…...

java修改jar包中的配置文件

方法一 &#xff01;&#xff01;&#xff01;除了以上的方式&#xff0c;其实也可以通过 vim 命令直接修改 jar 包配置文件的内容&#xff0c;然后直接保存即可&#xff0c;不过这种方法必须保证服务器上已经安装了 zip 和 unzip 命令。 方法二 首先需要找出你的配置文件在…...

半导体器件||的学习

电子管的介绍&#xff1a; 到底什么是电子管&#xff08;真空管&#xff09;&#xff1f; - 知乎 芯片破壁者&#xff08;一&#xff09;&#xff1a;从电子管到晶体管“奇迹”寻踪 - 知乎 晶体管&#xff1a; 什么是晶体管&#xff1f;它有什么作用&#xff1f; - 知乎 改…...

jenkins流水线

1.拉取代码 https://gitee.com/Wjc_project/yygh-parent.git2、项目编译 mvn clean package -Dmaven.test.skiptrue ls hospital-manage/target3、构建镜像 ls hospital-manage/target docker build -t hospital-manage:latest -f hospital-manage/Dockerfile ./hospital-ma…...

视频监控汇聚EasyCVR平台WebRTC流地址无法播放的原因排查

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多…...

NOSQL——redis的安装,配置与简单操作

目录 一、缓存的相关知识 1&#xff09;缓存的概念 2&#xff09;系统缓存 buffer与cache&#xff1a; 3&#xff09;缓存保存位置及分层结构 DNS缓存 应用层缓存 数据层缓存 分布式缓存服务&#xff1a; 数据库&#xff1a; 硬件缓存 二、关系型数据与非关系型数据…...

《合成孔径雷达成像算法与实现》Figure3.7

代码复现如下&#xff1a; clc clear all close all%参数设置 TBP 100; %时间带宽积 T 10e-6; %脉冲持续时间%参数计算 B TBP/T; …...

Linux 目录结构

初学Linux&#xff0c;首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件 ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件&#xff08;二进制&#x…...

7天获英国名校邀请函|CSC青骨获批成功案例补记

Q老师要求2周内拿到邀请函且必须是世界排名前200名的高校。我们在第7天就获得了世界百强名校-英国兰卡斯特大学的邀请函&#xff0c;导师的研究方向完全契合&#xff0c;提前实现了Q老师的委托目标&#xff0c;使其顺利获批CSC青骨项目。特别提示&#xff1a;青骨项目国内派出院…...

ffmpeg ts列表合并为mp4

操作系统&#xff1a;ubuntu 注意事项&#xff1a; 1.ts文件顺序必须正确&#xff0c;也就是下一帧的dst和pst要比上一帧的大&#xff0c;否则会报错 2.codecpar->codec_tag要设置为0&#xff0c;否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1…...

MATLAB程序初始化OpenFOAM颗粒位置

问题引入 在OpenFOAM的颗粒两相流求解器中&#xff0c;我们可以采用manualInjection的方式进行自定义颗粒的初始位置&#xff0c;这个命令十分方便&#xff0c;在CFDEM中也有类似的命令&#xff0c;不过CFDEM中的命令更加强大&#xff0c;我们不仅可以定义颗粒的初始位置&…...

软件第三方CMA、CNAS测试的目的和意义,信息化建设验收测试依据是什么?

在当今互联网时代&#xff0c;软件的第三方CMA、CNAS测试成为了软件行业的重要环节。那么&#xff0c;这个测试的目的和意义是什么呢?另外&#xff0c;信息化建设验收测试依据又是什么呢?    一、软件测试第三方CMA、CNAS测试的目的和意义 1、研究进展 随着软件行业的迅…...

CNN成长路:从AlexNet到EfficientNet(02)

一、说明 在~10年的深度学习中&#xff0c;进步是多么迅速&#xff01;早在 2012 年&#xff0c;Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在&#xff0c;我们超过90%的EfficientNet架构和师生训练&#xff08;teacher-student&#xff09;。 二、第一阶段 …...

【Kubernetes】yaml文件格式

目录 YAML 语法格式&#xff1a; 查看 api 资源版本标签 写一个yaml文件demo 创建资源对象 查看创建的pod资源 创建service服务对外提供访问并测试 创建资源对象 查看创建的service 在浏览器输入 nodeIP:nodePort 即可访问 kubectl run --dry-runclient 打印相应的 A…...

Python web实战之Django的文件上传和处理详解

概要 关键词&#xff1a;Python Web开发、Django、文件上传、文件处理 今天分享一下Django的文件上传和处理。 1. 上传文件的基本原理 在开始深入讲解Django的文件上传和处理之前&#xff0c;先了解一下文件上传的基本原理。当用户选择要上传的文件后&#xff0c;该文件会被发…...

Blender终极重网格插件:一键生成高质量四边形拓扑的完整指南

Blender终极重网格插件&#xff1a;一键生成高质量四边形拓扑的完整指南 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify 在3D建模工作…...

3步解锁碧蓝航线全皮肤:Perseus原生库补丁终极指南

3步解锁碧蓝航线全皮肤&#xff1a;Perseus原生库补丁终极指南 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus Perseus是一个专为碧蓝航线&#xff08;Azur Lane&#xff09;设计的原生库补丁工具&#x…...

Asian Beauty Z-Image Turbo 微信小程序前端开发:实时图像生成与分享

Asian Beauty Z-Image Turbo 微信小程序前端开发&#xff1a;实时图像生成与分享 最近在捣鼓一些有意思的AI应用&#xff0c;发现把大模型的能力搬到移动端&#xff0c;特别是像微信小程序这样的轻量级平台上&#xff0c;能玩出很多新花样。今天想和大家聊聊&#xff0c;怎么给…...

Vue3 + SpringBoot实战:用Minio搞定大文件切片上传与断点续传(附完整前后端代码)

Vue3 SpringBoot全栈实战&#xff1a;基于Minio的工业级大文件上传系统设计 在当今数据爆炸的时代&#xff0c;处理大文件上传已成为现代Web应用的标配能力。想象一下这样的场景&#xff1a;用户正在上传一个10GB的设计文件&#xff0c;进度到90%时网络突然中断&#xff1b;或…...

Verilator 5.008 + GTKWave 搭建指南:从安装到流水灯实战(附避坑清单)

Verilator 5.008 GTKWave 全流程实战指南&#xff1a;从环境搭建到流水灯仿真 在数字电路设计领域&#xff0c;仿真工具链的搭建往往是初学者面临的第一道门槛。Verilator作为当前最高效的开源Verilog仿真器之一&#xff0c;配合GTKWave波形查看工具&#xff0c;能够构建完整的…...

Python高级应用系列(二):元类——Python面向对象的暗物质

前言 在Python的世界里,万物皆对象,而类本身也是对象。那么,类这个对象又是由谁创造的呢?答案就是元类(Metaclass)。 元类被称为"Python面向对象的暗物质"——它无处不在,却鲜为人知;它威力强大,却常被误解。理解元类,就像掌握了Python对象模型的底层密码…...

【CTF】【二进制分析】深入解析JPG文件结构:从段标识到霍夫曼编码

1. JPG文件结构基础&#xff1a;二进制视角下的图片解剖 第一次用WinHex打开JPG文件时&#xff0c;满屏的十六进制代码可能会让你头皮发麻。但别担心&#xff0c;这些看似杂乱的数据其实遵循着严格的规范。就像拆解乐高积木&#xff0c;只要找到关键连接点&#xff0c;整个结构…...

基于BGE-Large-Zh的智能写作助手:内容相似度检测

基于BGE-Large-Zh的智能写作助手&#xff1a;内容相似度检测 你是不是也遇到过这样的烦恼&#xff1f;辛辛苦苦写了几千字的文章&#xff0c;发布后却被人质疑“是不是抄的”&#xff1f;或者自己写的内容&#xff0c;过段时间再看&#xff0c;总觉得似曾相识&#xff0c;但又…...

434649494

4546465484...

BEYOND REALITY Z-Image精彩案例分享:无磨皮、无失真、通透肤质生成作品

BEYOND REALITY Z-Image精彩案例分享&#xff1a;无磨皮、无失真、通透肤质生成作品 1. 项目概述 BEYOND REALITY Z-Image是一款专注于高精度写实人像生成的AI创作引擎&#xff0c;基于Z-Image-Turbo底座和BEYOND REALITY SUPER Z IMAGE 2.0 BF16专属模型打造。这个模型专门针…...