Python +selenium+unittest+ddt数据化实现自动化运行和脚本并生成报告

2023-11-03

一、unittest 框架解析

unittest 是 python 的单元测试框架。unittest 单元测试提供了创建测试用例,测试套件以及批量执行的方案, unittest 在安装 pyhton 以后就直接自带了,直接 import unittest 就可以使用。在自动化测试中,我们虽然不需要做白盒测试,但是必须需要知道所使用语言的单元测试框架。利用单元测试框架,创建一个类,该类继承 unittest 的 TestCase,这样可以把每个 case 看成是一个最小的单元, 由测试容器组织起来,到时候直接执行,同时引入测试报告

f8c26744cfd14344a2d7e4e89a66585b.png

 

test fixture:初始化和清理测试环境,比如创建临时的数据库,文件和目录等,其中 setUp() 和 setDown() 是最常用的方法。
test case:单元测试用例,TestCase 是编写单元测试用例最常用的类
test suite:单元测试用例的集合,它被用于把所有测试用例整合到一起,批量运行测试。
test runner:执行单元测试
test report:生成测试报告

写一个简单的脚本:

import unittest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from ddt import ddt, data, file_data, unpack

@ddt
class TestBingDdt(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome(r"C:\Users\PycharmProject\regiester\selenium_project0704\driver\chromedriver.exe")
        cls.driver.implicitly_wait(10)

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()
    @data("selenium","appium","fiddler")
    def test_bing_ddt(self,keyword):
        self.driver.get("https://cn.bing.com/")
        self.driver.find_element(By.ID, "sb_form_q").send_keys(keyword)
        self.driver.find_element(By.ID, "search_icon").click()
        time.sleep(2)
        assert keyword in self.driver.page_source


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

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

Python +selenium+unittest+ddt数据化实现自动化运行和脚本并生成报告 的相关文章

随机推荐

  • 【拒绝主观!】C++继承中父类的构造函数和析构函数调用情况

    C 继承中父类的构造函数和析构函数调用情况 父类构造函数调用规则 子类会默认调用父类的无参构造函数 且发生在子类所有代码执行之前 原因 父类里面的一些成员可能被设置为private 导致该成员变量只能由父类自己初始化 如果父类不存在无参构造
  • java求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+2....(java50道经典编程题)

    题目 求s a aa aaa aaaa aa a的值 其中a是一个数字 例如2 22 222 2222 22222 此时共有5个数相加 几个数相加有键盘控制 对于这个题目来说还是比较简单的不过我在编码过程中好像漏了点东西 调试了几遍才好 这
  • React路由懒加载的方式之一

    第一步 在组件中引入 lazy Suspense这两个api import React Component lazy Suspense from react 导入我们的路由组件 示例 import Home from Home import
  • vue-router路由中对query中的参数进行加密

    vue router路由中对query中的参数进行加密 源码地址在文末 在创建路由的时候 添加两个方法 stringifyQuery 序列化传入的query参数 方法可以接收一个对象参数 在new Router的时候传递这个属性 在序列化q
  • HDU寝室断电快乐上网指南(基于树莓派3B+的软路由

    HDU寝室断电快乐上网指南 基于树莓派3B 的软路由 前言 准备工作 1 PPPOE拨号上网 2 解除禁用网卡 3 安装一些其它必要程序 3 1 hostapd 3 2 dnsmasq 4 WIFI热点配置 4 1 解除禁用hostapd
  • MySQL的子查询

    文章目录 什么是子查询 单行子查询和多行子查询 单行子查询 多行子查询 什么是子查询 子查询 是指一个查询语句嵌套在另一个查询语句内的查询 因此也称为 嵌套查询 比如 要查询谁的工资比Abel高 谁的工资比Abel高 方式1 两次查询 SE
  • UnityWebGL 设置启动后自动网页全屏2020.3.40f1版本

    Unity版本2020 3 40f1 这是原版 开始修改 1 打开html修改此处代码 数字改为auto 风格改为100 可直接粘贴代码如下 div style width 100 height 100 div
  • 【HttpRunnerManager】搭建接口自动化测试平台操作流程

    一 需要准备的知识点 1 linux 安装 python3 nginx 安装和配置 mysql 安装和配置 2 python django 配置 uwsgi 配置 二 我搭建的环境 1 Centos7 配置 rabbitmq mysql S
  • 解读Logistic回归模型

    一 logistic回归的由来 logistic回归在百度百科是这样定义的 logistic回归又称logistic回归分析 是一种广义的线性回归分析模型 常用于数据挖掘 疾病自动诊断 经济预测等领域 由此可见 logistic回归是从线性
  • C++:栈(stack)的模板类实现

    1 基本概念 栈中的元素遵守 先进后出 的原则 LIFO Last In First Out 只能在栈顶进行插入和删除操作 压栈 或推入 进栈 即push 将数据放入栈顶并将栈顶指针加一 出栈 或弹出 即pop 将数据从栈顶删除并将栈顶指针
  • intellij idea调试小技巧: 循环调试

    public static void main String args throws InterruptedException int sign 0 for int i 0 i lt 100 i sign i System out prin
  • GPIO子系统-中断子系统

  • 计算机应用与音乐论文,计算机应用论文的专辑

    计算机应用文如何写 下面是小编整理的一些关于计算机应用论文的范文 欢迎阅读 希望对你有帮助 微课运用下中职计算机应用的教学方法 摘要 微课在教育领域中的应用 可以被视为科学技术快速发展与教学水平不断优化的外在表现形式 在中职计算机应用基础教
  • 清理MSConfig系统设置下的启动项

    我使用的系统是windows server 2008 r2 最近发现msconfig很多以前禁用的启动项 太多想删除一下 第一下想到的就是使用xp下的msconfig cleanup 没想到在这个系统上也不能用了 system repair
  • Java中的集合框架

    一 概述 1 集合 数组都是对多个数据进行存储操作的结构 简称java容器 说明 此时的存储 只要指的是内存层面的存储 不涉及到持久化的存储 txtjpg avi 数据 2 数组在存储多个数据方面的特点 一旦初始化以后 其长度就确定了 数组
  • 为自己的 SSM项目设计评论功能

    为自己的 SSM项目设计评论功能 设计思路 增加评论 显示评论 评论总数 设计思路 首先需要设计评论信息的实体类 对应评论表 主要分为以下2个功能 显示所有评论 当我们进入文章详情页的时候 页面就会通过 ajax 发送请求给服务器 这个请求
  • 8,tcl注释与续行

    注 学习 交流就在博主的个人weixin公众号 FPGA动力联盟 留言或直接 博主weixin fpga start 私信 关于xilinx vivado FPGA XDC约束的所有讲解文档汇总 关于xilinxvivadoFPGAXDC约
  • 期货基础知识

    期货基础知识 1期货交易概述 1 1概念 一 期货合约 是指由期货交易所统一制订的 规定在将来某一特定的时间和地点交割一定数量和质量实物商品或金融商品的标准化合约 所谓标准化合约是指合约的数量 质量 交货时间和地点等都是既定的 唯一的变量是
  • golang学习demo5-redis和redis连接池的使用

    知识点 redis 的安装与了解 golang中对redis的操作 golang中的redis 连接池 安装并启动redis server之后的界面 我们就可以使用了 默认端口是6379 在client客户端里可以进行命令操作 一个基本的g
  • Python +selenium+unittest+ddt数据化实现自动化运行和脚本并生成报告

    一 unittest 框架解析 unittest 是 python 的单元测试框架 unittest 单元测试提供了创建测试用例 测试套件以及批量执行的方案 unittest 在安装 pyhton 以后就直接自带了 直接 import un