Python 自动化Web测试
限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。
公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟用户的操作,这样的测试对于回归测试效果尤佳,减少了人工操作,极大地提高了效率。
据网上资料得知,python的web测试开源世界,存在splinter,它是自动化测试web的框架,这是最为基本的Web-driver。然后加上selenium,两者并用,才能支持主流的浏览器的firefox, chrome 和IE ,到目前为止,支持chrome浏览器的最为齐全,连鼠标的模拟的API都存在,同时对其余两大浏览器的支持也甚为不错。
有了splinter+selenium,已经可以模拟用户的操作了。但是怎样才能有效地模拟那么多业务的操作,并且能知道业务的执行是成功还是失败呢?这就需要python的单元测试框架了,它能有效地组织这些业务逻辑的测试执行,执行完毕后,显示出各个执行的结果,所谓的业务逻辑可以理解为各个测试用例。
python的单元测试需要自己把测试用例(TestCase)加入到测试集里(testSuite), 然后再runTest()进行测试。但我从python2.7.3的单元测试文档,发现更能让测试自动化的接口,那就是discover函数,它能找出指定目录包括其子目录下文件名符合某种样式的测试用例Testcase或测试模块,并且放入到测试集里面自动执行。这里是文档中关于discover函数的描述:
def discover(self, start_dir, pattern='test*.py', top_level_dir=None):
Find and return all test modules from the specified startdirectory, recursing into subdirectories to find them. Only test files that match the pattern will be loaded.
关于discover函数更加详细的用法,请查看文档和阅读其源代码。 因为我们测试产品的时候,都会有层次,分模块,或者整体地去测试,discover接口为我们提供了这样的功能,指定不同的目录,就相当于指定不同的模块进行测试,指定根目录代表要对产品进行整体的测试。 如这是迪备产品测试的雏形树状图:

基本的有了头绪,又有一个问题浮出水面了,那么测试用例的数据又是应该怎样存放的呢?用txt文件,就要定义存取数据的格式,同时规定所有的测试人员都使用这样的格式,这样做会比较牵强。那倒不如用一种人所皆知,并且易学的格式,python对XML格式的支持比较强大,最终决定使用XML文件。使用XML存取测试用例的数据,不但存取方便,并且可以设计测试用例与写相应测试脚本的人是不同的人。 以下是测试迪备产品的一些测试,包含用例的设计,XML测试用例配置文件和测试脚本的分析
B站最完整Python接口自动化测试进阶教程合集!真实模拟企业项目实战,看完这套就够了
相关文章:
Python 自动化Web测试
限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。 公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟…...
MM-Camera架构-Preview 流程分析
目录 文章目录 1 log开的好,问题都能搞2 lib3 preview3.1 打开视频流3.1.1 cpp\_module\_start\_session3.1.2 cpp\_thread\_create3.1.3 cpp\_thread\_funcsundp-3.1 cpp\_hardware\_open\_subdev(ctrl->cpphw)sundp-3.2 cpp\_hardware\_process\_command(ctrl-…...
科普文章|一文了解平行链及其优势
平行链是一种可以连接到更大规模的区块链网络(波卡)的独立区块链。不同于传统区块链(如比特币和以太坊)是孤立的并且无法在本地相互通信,平行链与其他平行链并行运行,并且相互可以无缝通信。平行链还使用波…...
Tomcat 9.0.41在IDEA中乱码问题(IntelliJ IDEA 2022.1.3版本)
1. 乱码的产生是由于编码和解码的编码表不一致引起的。 2. 排查乱码原因 2.1 在idea中启动Tomcat时控制台乱码排查 Tomcat输出日志乱码: 首先查看IDEA控制台,检查发现默认编码是GBK。 再查看Tomcat日志(conf文件下logging.properties)的默…...
在Kubernetes中实现gRPC流量负载均衡
在尝试将gRPC服务部署到Kubernetes集群中时,一些用户(包括我)面临的挑战之一是实现适当的负载均衡。在深入了解如何平衡gRPC的方式之前,我们首先需要回答一个问题,即为什么需要平衡流量,如果Kubernetes已经…...
Floorplanning with Graph Attention
Floorplanning with Graph Attention DAC ’22 目录 Floorplanning with Graph Attention摘要1.简介2.相关工作3.问题公式化4. FLORA的方法4.1 解决方案概述4.2 C-谱聚类算法 4.3 基于GAT的模型4.4 合成训练数据集生成 摘要 布图规划一直是一个关键的物理设计任务࿰…...
centos7 配置coreboot编译环境 以及编译问题解决
需要的配置 (有的资源在国外可能需要翻墙) 操作系统: centos7.9 参考文章 coreboot源码分析之编译和运行coreboot - 知乎 //coreboot编译总说明 https://www.coreboot.org/Build_HOWTO#Requirements https://poe.com/ChatGPT 注意: 因为github不稳定 所以gitee为主 1. 下载…...
大型语言模型:RoBERTa — 一种鲁棒优化的 BERT 方法
一、介绍 BERT模型的出现导致了NLP的重大进展。BERT的架构源自Transformer,在各种下游任务上实现了最先进的结果:语言建模,下一句预测,问答,NER标记等。 大型语言模型:BERT — 来自变压器的双向编码器表示 …...
解析navicate数据库密码
在线运行地址:代码在线运行 - 在线工具 <?php class NavicatPassword {protected $version 0;protected $aesKey libcckeylibcckey;protected $aesIv libcciv libcciv ;protected $blowString 3DC5CA39;protected $blowKey null;protected $blowIv null;public func…...
mysql字段类型与oracle字段类型对应关系
MySQL与Oracle两种数据库在工作中,都是用的比较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上一定的麻烦,下面介绍MySQL与Oracle数据库数据类型的对应关系。 一、常见数据类型在MyS…...
linux 中 tar \ zip 解压错误后撤回
#zip zipinfo -1 path/xx.zip | xargs rm -rf#tar tar -tf xx.tar | xargs rm -rf...
对象图 UML从入门到放弃之四
1.劝退说明 对象图提供了系统在某个特定时刻的状态快照。这是一种有用的描述系统的方法,当系统的结构是动态构建起来而不是由其静态的类结构决定时,更是如此。不过,应该对画太多的对象图保持警惕。在大部分情况下,它们都可以从相应…...
FPGA实现HDMI输入转SDI视频输出,提供4套工程源码和技术支持
目录 1、前言免责声明 2、我目前已有的SDI编解码方案3、设计思路框架核模块解析设计框图IT6802解码芯片配置及采集ADV7611解码芯片配置及采集silicon9011解码芯片配置及采集纯verilog的HDMI 解码模块RGB888转YUV422SPMTE编码SDI模式图像缓存SPMTE SDIGTXGV8500 4、vivado工程1-…...
针对FTP的SSRF攻击
前言 ssrf中常用的协议有http,gopher等。但http协议在ssrf中的用处也仅限于访问内网页面,在可以crlf的情况下才有可能扩大攻击范围。gopher协议比较特殊,在部分环境下支持此协议,如:curl。但还有一些环境就不支持了&a…...
线性代数中涉及到的matlab命令-第一章:行列式
目录 1,逆序数 2,行列式定义和性质 2.1,常用特性及命令 2.2,求行列式 2.3,行列式的性质 2,行列式按行(列)展开 3,范德蒙德行列式 在学习线性代数过程中&#…...
QT编程,QT内存管理、信号与槽、
目录 一、QT工具 二、QT内存管理 三、信号与槽 1、信号与槽特点 2、信号 3、槽函数 4、连接 5、发送信号 6、取消连接 一、QT工具 1、Qt Designer:界面设计编辑工具 2、Qt Assistant: Qt技术文档浏览器 3、Qt Linguist: 国际化语言翻译工具 4、…...
springcloud之项目实战环境准备
写在前面 为了更好的学习springcloud,我们来一起开发一个实战项目,加深理解。 1:项目介绍 在开始项目实战之前先来做一个整体的项目介绍,从而能够让对项目的整体架构和模板有一个比较清晰的认知。 大家都知道双11,…...
Linux 部署 MinIO 分布式对象存储 配置为 typora 图床
前言 MinIO 是一款高性能的对象存储系统,它可以用于大规模的 AI/ML、数据湖和数据库工作负载。它的 API 与Amazon S3 云存储服务完全兼容,可以在任何云或本地基础设施上运行。MinIO 是开源软件,也提供商业许可和支持 MinIO 的特点有&#x…...
JVM Optimization Learning(四)
目录 一、调优 1、基础概念 2、什么是调优? 3、调优,从规划开始 4、调优案例 一、调优 1、基础概念 吞吐量:用户代码执行时间 /(用户代码执行时间 垃圾回收时间) 响应时间:STW越短,响应…...
新华三辅导笔记 2023/10/9-2023/10/13
新华三辅导笔记 一、需要用到的软件二、计算机网络概述1、计算机网络的定义和基本功能(1)什么是计算机网络(2)计算机网络的基本功能 2、(1)局域网、城域网和广域网(范围划分)&#x…...
鼠标点击也能如此惊艳!ClickShow让你的Windows操作充满视觉魔力 ✨
鼠标点击也能如此惊艳!ClickShow让你的Windows操作充满视觉魔力 ✨ 【免费下载链接】ClickShow 鼠标点击特效 项目地址: https://gitcode.com/gh_mirrors/cl/ClickShow 还在为枯燥的鼠标点击操作感到乏味吗?每天重复的点击、拖拽、选择࿰…...
企业微信多账号协同管理方案:矩阵如何统一管理?
账号越来越多、运营越来越乱?通过企业微信 API,实现多账号统一管理与自动化调度。很多私域团队在业务增长后,都会开始运营多个企业微信账号。 但账号一多,人工切换、消息管理、客户分配都会变得非常混乱。QiWe 开放平台通过标准化…...
米尔RK3576开发板评测:工业AI与边缘计算的性能甜点方案
1. 项目概述:当RK3576遇上米尔开发板,工业AI的新选择最近在嵌入式圈子里,瑞芯微的RK3576这颗SoC讨论热度挺高。作为一枚常年混迹在工控、边缘计算和AIoT项目里的老工程师,我对这类新平台的发布总是格外敏感。米尔电子作为国内老牌…...
从CSV文件到3D点云:用Qt+OpenGL打造一个简易的激光雷达数据查看器
从CSV文件到3D点云:用QtOpenGL打造激光雷达数据查看器 激光雷达技术正在重塑自动驾驶、机器人导航和三维测绘的格局。当数百万个空间数据点从激光雷达设备中喷涌而出时,工程师们面临着一个关键挑战:如何快速验证和可视化这些原始数据…...
【ElevenLabs情绪语音实战指南】:3步解锁开心语音API调用、情感强度微调与合规避坑全链路
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs开心情绪语音技术全景概览 核心技术能力 ElevenLabs 的开心情绪语音生成并非简单音调拉升或语速加快,而是基于多任务情感条件建模(Multi-Task Emotional Conditionin…...
如何快速上手专业3D点云标注工具:完整入门指南
如何快速上手专业3D点云标注工具:完整入门指南 【免费下载链接】labelCloud A lightweight tool for labeling 3D bounding boxes in point clouds. 项目地址: https://gitcode.com/gh_mirrors/la/labelCloud 在自动驾驶、机器人视觉和三维重建等领域&#x…...
Hello Robot 发布 Stretch 4 移动操作机器人,推动具身智能迈向家庭实用化
近日,机器人公司 Hello Robot 正式推出了其新一代产品——Stretch 4 移动操作机器人。作为 Stretch 3 的全面升级迭代,全新的 Hello Robot 具身智能平台 在移动灵活性、环境感知、运行性能与续航能力上实现了显著突破,并将设计重心明确转向…...
如何快速上手小米手表表盘设计:免费工具Mi-Create的终极指南
如何快速上手小米手表表盘设计:免费工具Mi-Create的终极指南 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 还在为小米手表找不到心仪的表盘而烦恼…...
基于Cadence Virtuoso的gm/ID曲线仿真与参数扫描实战指南
1. 从零理解gm/ID设计方法学 在模拟电路设计领域,随着工艺节点不断缩小,我们这些工程师遇到了一个尴尬的现实:教科书里的那些经典公式越来越不灵了。记得我第一次用28nm工艺设计运放时,按照传统方法计算的增益和实测结果差了近40%…...
从零到一:我的CentOS私服游戏搭建实战与避坑指南
1. 环境准备:从零开始的CentOS系统部署 第一次接触游戏私服搭建时,我像大多数新手一样对Linux系统充满敬畏。但实际用CentOS搭建环境比想象中简单——只要避开几个关键雷区。推荐使用CentOS 7.9这个经典版本,它在稳定性和软件兼容性上表现最好…...
