数据驱动+自动化测试

news2024/10/1 15:30:09

自动化测试代码优化

setUp 在每个测试用例执行之前执行

tearDown 在每个测试用例执行完以后执行

所以,可以利用setUp,把测试用例中的通用代码提取出来,减少冗余

数据驱动测试:优化自动化测试

安装: pip install pyyaml

pip install ddt

1 在data中创建测试数据:格式为xxx.ymal

2 引入包from ddt import ddt, file_data

3 类名前 固定写法:@ddt

4 测试函数前引入数据文件 @file_data('../data/user_data.yaml')

括号里是数据的相对路径

5 通过**kwargs 把数据传入函数使用

import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from page_obj.register import Register
from ddt import ddt, file_data
# 注册
@ddt
class WindReg(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Chrome()

    def tearDown(self) -> None:
        self.driver.quit()

    # 用例:测试用户名是否合法
    @file_data('../data/user_data.yaml')
    def test01_username(self,**kwargs):
        reg = Register(self.driver)
        reg.open_web()
        username = kwargs['user']
        reg.input_username(username)
        reg.sleep(5)
        reg.click_btn()
        reg.sleep(5)
        tp = (By.XPATH, '//*[@id="J_reg_tip_username"]/span')
        span = reg.locator(tp)
        class_con = span.get_attribute('class')
        self.assertEqual(kwargs['msg'],class_con)

if __name__ == '__main__':
    unittest.main()

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

 

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

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

相关文章

JDK19 - synchronized关键字导致的虚拟线程PINNED

JDK19 - synchronized关键字导致的虚拟线程PINNED 前言一. PINNED是什么意思1.1 synchronized 绑定测试1.2 synchronized 关键字的替代 二. -Djdk.tracePinnedThreads的作用和坑2.1 死锁案例测试2.2 发生原因的推测2.3 总结 前言 在 虚拟线程详解 这篇文章里面,我们…

Protues 仿真报错Internal Exception: access violation in module ‘UNKNOWN‘[7ADEEEA9]

在使用STM32F103C8进行Protues仿真设计的时候,出现了这个报错,通过查找和定位问题,发现是我在配置供电网络的时候配置错误,要配置成如下: 至于为什么回这样,我猜想应该是和这个软件导入STM32芯片的时候&…

300个智商测试FLASH智商游戏ACCESS数据库

最近在找IQ测试方面的数据,网上大多只留传着33道题这种类型,其他的又因各种条件(比如图片含水印等)不能弄,这是从测智网下载的一些测试智商的游戏数据,游戏文件是FLASH的,扩展名是SWF。 数据包总…

FineReport主题组件使用

主题 添加主题 服务器-》模版主题管理,设置决策报表与普通报表的模版主题: 修改内置模版,打开,点击另存为设置自己的主题名称,保存主题 根据自己需求设置模版相关样式:模版背景、单元格样式、图表样式、…

模板方法设计模式(C++)

定义 定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。 ——《设计模式》GoF Template Method模式是一种非常基…

转录组下游分析 | 懒人分析推荐

写在前面 今天在GitHub看到一个博主写的RNASeqTool的ShinApp,里面包含了PCA、DESeq2、volcano、NormEnrich、GSEA、Gene tred analysis和WGCNA分析。使用后还是很方便的,就此推荐给大家。感兴趣可以自己操作即可。 GitHub网址 https://github.com/Cha…

QT以管理员身份运行

以下配置后,QT在QT Creator调试时,或者生成的.exe程序,都将会默认以管理员身份运行。 一、MSVC编译器 1、在Pro文件中添加以下代码: QMAKE_LFLAGS /MANIFESTUAC:\"level\requireAdministrator\ uiAccess\false\\" …

Java 8 中使用 Stream 遍历树形结构

在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看&#x…

利用openTCS实现车辆调度系统(二)openTCS下载部署

openTCS下载 **openTCS不是一个部署即用的系统,需要自己做一部分二次开发工作。这里先下载打包好的应用,了解openTCS的功能:应用下载地址**整个部署使用部分包括,启动程序、应用地图、准备设备、下发订单。 1、启动调度内核 双…

idea中cherry pick怎么用

网上的文章比较杂乱,具体idea里面怎么操作,好像没有个成型的文章 cherry pick的作用: 简而言之就是同一个commit,然后复制提交到其他分支(只检出本次提交的); 解决的问题: 两个分…

轻松搭建酒店小程序

酒店小程序的制作并不需要编程经验,只需要按照以下步骤进行操作,就能很快地搭建自己的小程序商城。 第一步,注册登录账号进入操作后台,找到并点击【商城】中的【去管理】进入商城的后台管理页面,然后再点击【小程序商城…

原型模式与享元模式:提升系统性能的利器

原型模式和享元模式,前者是在创建多个实例时,对创建过程的性能进行调优;后者是用减 少创建实例的方式,来调优系统性能。这么看,你会不会觉得两个模式有点相互矛盾呢? 在有些场景下,我们需要重复…

Linux安装cuda和cudnn教程

Linux安装cuda和cudnn教程 文章目录 1.下载cuda和cudnn2. 安装cuda并检验安装是否成功3. 安装cudnn4.验证cuda是否能用代码附件:解压各种格式文件的Linux命令参考文献 卸载之前的cuda 卸载之前的cuda教程 1.下载cuda和cudnn CUDA下载地址:https://dev…

Tailwind CSS:简洁高效的工具,提升前端开发体验

112. Tailwind CSS:简洁高效的工具,提升前端开发体验 1. 什么是Tailwind CSS? Tailwind CSS是由Adam Wathan、Jonathan Reinink、David Hemphill和Steve Schoger等人共同创建的一种现代CSS框架。与传统的CSS框架不同,Tailwind CS…

如何用 NPS 确定研发优先级,打破技术与业务的次元壁?

「不了解利益相关者的需求是僵尸 Scrum 团队的四大常见症状之一,其主要表现为成员们忽视价值链上下游的内容,无法或不愿意带来任何改变或影响」,《拯救僵尸 Scrum》如是写道。 它们的工作,以及工作所涉及的组织,往往被…

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

Hive Hadoop Hive 和传统关系型数据库区别 Spark 概念 基于内存的分布式计算框架 只负责算 不负责存 spark 在离线计算 功能上 类似于mapreduce的作用 MapReduce的缺点 运行速度慢 (没有充分利用内存)接口比较简单,仅支持Map Reduce功能…

AI写作宝有哪些,分享两种AI写作工具

AI写作宝是一种基于人工智能技术的写作辅助工具。它可以根据用户输入的关键词和主题快速生成文章。AI写作宝可以为用户节省大量的时间和精力,帮助用户快速生成高质量的文章。今天就为大家推荐两款AI写作宝: 一、AI创作家 AI创作家是一款基于人工智能技…

在java中存储对象到redis出现类型转换异常的解决方法

**出现的问题,**此时的redisCatch已经注入 原因:这里传进来的是一个对象,redis不能直接将对象存到String中,必须将对象进行序列化转成json字符串再存储,其次.传进来的对象不能是null 再重新启动就行了

整会promise这8个高级用法,再被问倒来喷我

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 发现很多人还只会promise常规用法 在js项目中,promise的使用应该是必不可少的,但我发现在同事和面试者中,很多中级或…

GD32F103VE睡眠与唤醒

GD32F103VE睡眠与唤醒,兆易官网给的程序没有测试。等测试后,才发现有问题。 现修改,测试如下: #include "SleepMode.h" #include "delay.h"u8 WFE_CMD_EnterSleepModeFlag;void Enter_DeepSleepMode(void);…