IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> UI测试——unittest框架+HTML报告生成 -> 正文阅读

[开发测试]UI测试——unittest框架+HTML报告生成

1.unittest框架

单个脚本重复的操作:导包,获取浏览器的驱动,关闭浏览器,清除浏览器的操作。降低效率。
避免这些重复的操作?
用框架
unittest框架之setUp方法:
在执行测试用例脚本之前进行初始化环境的方法
方法参数中的self是干什么的
self代表类的实例/引用
定义全局变量,所有方法都可以使用
全局变量的定义:sel.变量名
tearDown()
去进行一些测试用例执行后清理环境的操作
setUp() tearDown() 测试固件
测试用例的方法是以:test_开头

from selenium import webdriver
import time
import unittest
class TestUnit1(unittest.TestCase):
   # 获取浏览器的驱动
   def setUp(self):
       self.driver = webdriver.Chrome()
       self.driver.maximize_window()
       self.url = "https://www.baidu.com/"
       self.driver.get(self.url)
       time.sleep(3)

    # 在百度中搜索信息
    # 测试用例的起名要用test_

   def test_search1(self):
        self.driver.find_element_by_id("kw").send_keys("长津湖")
        self.driver.find_element_by_id("su").click()
        time.sleep(6)
   def test_search2(self):
       self.driver.find_element_by_id("kw").send_keys("Lisa")
       self.driver.find_element_by_id("su").click()
       time.sleep(6)


    # 关闭浏览器
   def tearDown(self):
       self.driver.quit()

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

2.测试套件(suit)

把我们需要一次性执行的测试用例,放在一个套件里,一次性运行

addTest

把 一个测试脚本中某几个测试用例方法添加到测试套件
(脚本名称.类名称.方法名称)

makeSuite

把一个测试脚本中所有的测试用例方法添加到测试套件makeSuite
addTest(unittest.makeSuite(脚本名称.类名称))

TestLoader

把一个文件中所有以某种形式命名的测试脚本中的所有测试用方法添加到测试套件
unittest.TestlLoader().LoadTestsFromTestCase(脚本名称.类名称)

discover

把一个文件夹中所有的测试脚本中的测试用例放入到测试套件
discover=unittest.defaultTestLoader.discover(具体文件夹,pattern=测试脚本名称通配符,top_level_dir=None)

import unittest
from src20211230 import testbaidu2
from src20211230 import testbaidu1

def creatSuit():
    # 要把不同的测试脚本的类中的需要执行的方法放在一个测试套件中
    # suit = unittest.TestSuite()
    # suit.addTest(testbaidu1.Baidu1("test_hao"))
    # suit.addTest(testbaidu2.Baidu2("test_hao"))
    # suit.addTest(testbaidu2.Baidu2("test_baidusearch"))
    # return suit

   #如果我需要把一个测试脚本中年所有的测试用例都添加到suit中,怎么做?
   # makeSuit
   #  suit = unittest.TestSuite()
   #  suit.addTest(unittest.makeSuite(testbaidu1.Baidu1))
   #  suit.addTest(unittest.makeSuite(testbaidu2.Baidu2))
   #  return suit
#     TestLoader
#     suit1 = unittest.TestLoader().loadTestsFromTestCase(testbaidu1.Baidu1)
#     suit2 = unittest.TestLoader().loadTestsFromTestCase(testbaidu2.Baidu2)
#     suit = unittest.TestSuite([suit1, suit2])
#     return suit
# 可以把一个文件夹下面所有的测试脚本中的测试用例放入测试套件
    discover = unittest.defaultTestLoader.discover("../src20211230", pattern="testbaidu*.py", top_level_dir=None)
    return discover
if __name__ == "__main__":
    suit = creatSuit()
    # verbersity= 0, 1, 2
    runner = unittest.TextTestRunner()
    runner.run(suit)

3.测试用例执行顺序

test_
0——9,A——Z,a——z

4.忽略测试用例的执行

@unittest.skip(“skipping”)

5.断言

自动化测试脚本中,如何判断实际结果和预期结果是否一致?
在这里插入图片描述
在这里插入图片描述

6.HTML报告的生成

测试用例比较多的时候,需要统计测试用例的执行结果,比如,执行了多少测试用例,执行成功的有多少,执行失败的有多少,执行失败的原因。

import HTMLTestRunner
import os
import sys
import time
import unittest

def createsuite():
    discovers = unittest.defaultTestLoader.discover("../src20211230", pattern="testbaidu*.py", top_level_dir=None)
    print(discovers)
    return discovers

if __name__=="__main__":
    # 文件夹要创建在哪里
    curpath = sys.path[0]
    print(sys.path)
    print(sys.path[0])
    # 1,创建文件夹,创建的这个文件夹干什么
    if not os.path.exists(curpath+'/resultreport'):
        os.makedirs(curpath+'/resultreport')

    # 2,文件夹的命名,不能让名称重复
    # 时间  时分秒 ——》名称绝对不会重复
    now = time.strftime("%Y-%m-%d-%H %M %S", time.localtime(time.time()))
    print(now)
    print(time.time())时间戳
    print(time.localtime(time.time()))
    # 文件名
    filename = curpath + '/resultreport/'+ now + 'resultreport.html'

    with open(filename, 'wb') as fp:

        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"测试报告",
                                               description=u"用例执行情况", verbosity=2)
        suite = createsuite()
        runner.run(suite)

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:28:21  更:2022-02-19 01:28:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:35:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码