自动化测试报告样式HTMLTestRunner、BeautifulReport、HTMLReport、Allure你喜欢哪个?

news2024/9/27 21:31:04

自动化测试报告样式HTMLTestRunner、BeautifulReport、HTMLReport、Allure你喜欢哪个?

  • 1 框架设计(准备工作)
    • 1.1 简易框架图
    • 1.2 common/reportOut.py
    • 1.3 report
    • 1.4 testcase/test_baidu.py
    • 1.5 mian.py
  • 2 HTMLTestRunner
    • 2.1 下载使用
    • 2.2 reportOut.py设计
    • 2.3 报告样式效果
  • 3 BeautifulReport
    • 3.1 下载安装
    • 3.2 使用方法
    • 3.3 reportOut.py设计
    • 3.4 报告样式效果
  • 4 HTMLReport
    • 4.1 下载安装
    • 4.2 使用方法
    • 4.3 参数说明
    • 4.4 报告样式效果
  • 5 Allure
    • 5.1 allure-pytest插件安装
    • 5.2 pytest安装
    • 5.3 allure文件下载
    • 5.4 allure环境变量配置
    • 5.5 配置java环境
    • 5.6 查看allure版本
    • 5.7 设计用例
    • 5.8 执行方法
    • 5.9 查看报告方法
    • 5.10 切换语言
    • 5.11 查看测试套件
    • 5.12 查看运行图表数据
    • 5.13 查看用例执行时间
    • 5.14 查看用例数据

  • 有很多种自动化测试报告样式,接下来主要看下这些常用样式的效果是怎样的
  • 每个样式各有特点,选择自己喜欢的使用就好了
  • 自动化测试时你用的最多的是哪个呢?

1 框架设计(准备工作)

  • 我们需要把HTMLTestRunner、BeautifulReport、HTMLReport、Allure这几个报告样式用在自动化测试框架中;
  • 以下是我们设计了一个简易的WebUI自动化框架,便于后续的报告样式讲解使用。

1.1 简易框架图

在这里插入图片描述

1.2 common/reportOut.py

  • 报告的封装,详细的在后续的内容讲解;

1.3 report

  • 存放报告的路径;
  • common/reportOut.py中指定存放在此处。

1.4 testcase/test_baidu.py

  • 写了一个简单的用例,用于后续报告数据的展示;
  • 用例中3个成功,2个失败,故意这样设计是为了查看报告的样式显示;
  • 脚本如下:
# 作者:虫无涯
# 日期:2023/7/7
# 文件名称:test_baidu.py
# Function:打开百度网主页,在搜索栏输入“helloworld”

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import unittest

class Test_Baidu(unittest.TestCase):

    @classmethod
    def setUpClass(cls) -> None:
        cls.driver = webdriver.Chrome()  # 打开Chrome浏览器
        cls.driver.get("http://www.baidu.com")  # 输入百度网址
        print("============验证浏览器的基本控制==========")

    @classmethod
    def tearDownClass(cls) -> None:
        cls.driver.quit()  # 关闭浏览器

    def test_01_search(self):
        """1、搜索helloworld.并回车......"""
        time.sleep(2)
        self.driver.find_element_by_id("kw").send_keys("helloworld")  # 输入“helloworld”
        time.sleep(2)
        self.driver.find_element_by_id("kw").send_keys(Keys.ENTER)  # 回车进行搜索
        time.sleep(2)
        self.driver.maximize_window()  # 最大化当前窗口
        time.sleep(0.5)
        size = self.driver.get_window_size()
        print(type(size))
        get_size = {'height': 696, 'width': 1296} # 根据自己电脑的最大化尺寸赋值
        self.assertEqual(size, get_size, "最大化窗口失败~")

    def test_02_windows_size(self):
        """2、浏览器窗口大小缩小为640*480......"""
        time.sleep(2)
        self.driver.set_window_size(640, 480)  # 控制浏览器显示尺寸为640*480
        time.sleep(2)
        get_size = {'height': 480, 'width': 640}
        size = self.driver.get_window_size()
        self.assertEqual(size, get_size, "设置窗口为640*480失败~")

    def test_03_back_refresh(self):
        """3、先进行浏览器后退,再次输入csdn进行搜索"""
        self.driver.maximize_window()  # 最大化当前窗口
        self.driver.back()
        input_text = "csdn"
        self.driver.find_element_by_id("kw").send_keys(input_text)  # 输入csdn
        time.sleep(1)
        get_text = self.driver.find_element_by_id("kw").text
        self.assertEqual(get_text, input_text, "输入内容失败~")

    def test_04_serach_clear(self):
        """4、清空输入的内容......"""
        self.driver.refresh()  # 刷新
        self.driver.find_element_by_id("kw").send_keys("csdn")  # 输入csdn
        time.sleep(2)
        self.driver.find_element_by_id("kw").clear()
        time.sleep(0.5)
        get_text = self.driver.find_element_by_id("kw").text
        self.assertEqual(get_text, "", "清空内容失败~")

    def test_05_csdn(self):
        """5、进入csdn官网"""
        self.driver.find_element_by_id("kw").send_keys("csdn")  # 输入csdn
        time.sleep(2)
        self.driver.find_element_by_id("kw").send_keys(Keys.ENTER)  # 回车进行搜索
        time.sleep(2)
        self.driver.find_element_by_xpath("//*[@id='1']/h3/a[1]").click()
        time.sleep(2)
        windows = self.driver.window_handles
        self.driver.switch_to.window(windows[-1])
        now_url = self.driver.current_url
        m_get_url = "https://www.csdn.net/"
        self.assertEqual(now_url, m_get_url, "经过判断,没有进入csdn官网")


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

1.5 mian.py

  • 框架的主入口;
  • 脚本如下:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/7
# 文件名称:main.py
# 作用:框架的主入口函数

# coding=utf-8

import time
from common.reportOut import report_out
import os


def run_case():
    print("======开始执行!!!======")
    curpath = os.path.dirname(os.path.realpath(__file__))
    report_dir = os.path.join(curpath, "report/")        # 测试报告存放目录
    test_dir = os.path.join(curpath, "testcase/")        # 测试用例读取目录
    name_project = "BaiDu "
    report_out(test_dir, report_dir, name_project)
    time.sleep(5)
    print("======执行结束!!!======")

if __name__ == '__main__':
    run_case()

2 HTMLTestRunner

2.1 下载使用

  • 直接下载对应的HTMLTestRunner.py版本,放到项目的common目录下,进行调用即可;
  • 下载路径:
链接:https://pan.baidu.com/s/1br2jtJf1IBFCMpcPyupGOg 
提取码:fumb

2.2 reportOut.py设计

# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/7
# 文件名称:reportOut.py
# 作用:封装测试报告功能

import time
import unittest
from common import HTMLTestRunner    # 引入导入的报告模板
# from BeautifulReport import BeautifulReport as bf


def report_out(test_dir, report_dir, name_project):
    '''
    :test_dir: 用例路径
    :report_dir : 报告路径
    :name_project : 项目名称=>用于报告命名及描述
    :return: 无
    '''

    now = time.strftime("%Y_%m_%d %H_%M_%S")
    discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')      # 加载测试用例
    report_name = report_dir + now + '-' + name_project+'_test_report.html'          # 报告名称
    with open(report_name,'wb') as f:                                                # 运行用例生成测试报告
        runner = HTMLTestRunner.HTMLTestRunner(stream=f,
                              title=name_project + 'WebUI Auto Testing Report',
                              description=(name_project + U"美多商城UI自动化功能回归测试"),
                              verbosity=2)
        runner.run(discover)
        f.close()

    """
    stream:要操作的文件;
    title:测试报告标题;
    description:报告描述;
    verbosity:报告级别。
    """

2.3 报告样式效果

  • 直接运行main.py,即可;
  • 样式如下:
    在这里插入图片描述
  • 错误的用例:
    在这里插入图片描述
  • 失败的用例:
    在这里插入图片描述

3 BeautifulReport

3.1 下载安装

  • 直接使用命令安装即可:
pip install BeautifulReport

在这里插入图片描述

3.2 使用方法

  • 直接调用即可;
  • 直接在reportOut.py设计调用方法。

3.3 reportOut.py设计

  • 屏蔽掉调用HTMLTestRunner的方法;
  • 重新设计调用BeautifulReport的方法;
  • 脚本如下:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/7
# 文件名称:reportOut.py
# 作用:封装测试报告功能

import time
import unittest
# from common import HTMLTestRunner    # 引入导入的报告模板
from BeautifulReport import BeautifulReport as bf

def report_out(test_dir, report_dir, name_project):
    '''
    :test_dir: 用例路径
    :report_dir : 报告路径
    :name_project : 项目名称=>用于报告命名及描述
    :return: 无
    '''

    now = time.strftime("%Y_%m_%d %H_%M_%S")
    discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')      # 加载测试用例
    report_name = now + '-' + name_project + '_test_report.html'          # 报告名称
    run = bf(discover)
    run.report(filename=report_name, report_dir=report_dir, description=U"美多商城UI自动化功能回归测试")

    """
    stream:要操作的文件;
    title:测试报告标题;
    description:报告描述;
    verbosity:报告级别。
    """

3.4 报告样式效果

  • 全部样式效果:

在这里插入图片描述

  • 错误样式:
    在这里插入图片描述
  • 失败用例样式:
    在这里插入图片描述

4 HTMLReport

4.1 下载安装

  • 直接使用命令安装即可:
pip install HTMLReport

C:\Users\Administrator>pip install HTMLReport
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting HTMLReport
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ea/f5/b95ada8e79548e60b690207f41f18aedc9bdacafce7afaa91aefeb514b18/HTMLReport-2.3.1-py3-none-any.whl (33 kB)
Installing collected packages: HTMLReport
Successfully installed HTMLReport-2.3.1

C:\Users\Administrator>

4.2 使用方法

  • 直接调用即可,屏蔽掉调用HTMLTestRunner、BeautifulReport
  • 重新设计调用HTMLReport的方法;
  • 脚本如下:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/7
# 文件名称:reportOut.py
# 作用:封装测试报告功能

import time
import unittest
# from common import HTMLTestRunner    # 引入导入的报告模板
# from BeautifulReport import BeautifulReport as bf
from HTMLReport import ddt, TestRunner, add_image, no_retry, retry


def report_out(test_dir, report_dir, name_project):
    '''
    :test_dir: 用例路径
    :report_dir : 报告路径
    :name_project : 项目名称=>用于报告命名及描述
    :return: 无
    '''

    now = time.strftime("%Y_%m_%d %H_%M_%S")
    discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')      # 加载测试用例
    # report_name = now + '-' + name_project + '_test_report.html'          # 报告名称
    test_runner = TestRunner(
        report_file_name=now,
        output_path=report_dir,
        title=name_project,
        description="关于HTMLReport的实际项目应用",
        thread_count=1,
        thread_start_wait=0.1,
        tries=0,
        delay=0,
        back_off=1,
        retry=True,
        sequential_execution=True,
        lang="cn"
    )
    test_runner.run(discover)

4.3 参数说明

参数说明
report_file_name报告文件名,如果未赋值,将采用“test+时间戳”
log_file_name日志文件名,如果未赋值,将采用报告文件名,如果报告文件名也没有,将采用“test+时间戳”
output_path报告保存文件夹名,默认“report
title报告标题,默认“测试报告”
description报告描述,默认“无测试描述”
tries重试次数
delay重试延迟间隔,单位为 秒
back_off扩展每次重试等待时间的乘数
max_delay最大重试等待时间长度,单位为 秒
retry如果为 True 表示所有用例遵循重试规则,False 只针对添加了 @retry 用例有效
thread_count并发线程数量(无序执行测试),默认数量 1
thread_start_wait各线程启动延迟,默认 0 s
sequential_execution是否按照套件添加(addTests)顺序执行, 会等待一个addTests执行完成,再执行下一个,默认 False。如果用例中存在 tearDownClass ,建议设置为True否则 tearDownClass 将会在所有用例线程执行完后才会执行。
lang("cn", "en") 支持中文与英文报告输出,默认采用中文
image默认支持添加图片,False 放弃所有图片添加
failed_imagetrue 只有失败才添加图片,成功用例添加的图片会被删除

4.4 报告样式效果

  • 整体效果:
    在这里插入图片描述
  • 中英文切换
    在这里插入图片描述
  • 错误用例效果:
    在这里插入图片描述
  • 失败用例效果
    在这里插入图片描述

5 Allure

5.1 allure-pytest插件安装

pip3 install allure-pytest
C:\Users\Administrator>pip3 install allure-pytest
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: allure-pytest in d:\python37\lib\site-packages (2.8.12)
Requirement already satisfied: six>=1.9.0 in d:\python37\lib\site-packages (from allure-pytest) (1.15.0)
Requirement already satisfied: allure-python-commons==2.8.12 in d:\python37\lib\site-packages (from allure-pytest) (2.8.12)
Requirement already satisfied: pytest>=4.5.0 in d:\python37\lib\site-packages (from allure-pytest) (6.2.4)
Requirement already satisfied: attrs>=16.0.0 in d:\python37\lib\site-packages (from allure-python-commons==2.8.12->allure-pytest) (20.3.0)
Requirement already satisfied: pluggy>=0.4.0 in d:\python37\lib\site-packages (from allure-python-commons==2.8.12->allure-pytest) (0.13.1)
Requirement already satisfied: importlib-metadata>=0.12 in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (2.1.1)
Requirement already satisfied: iniconfig in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (1.1.1)
Requirement already satisfied: py>=1.8.2 in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (1.10.0)
Requirement already satisfied: packaging in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (20.8)
Requirement already satisfied: colorama in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (0.4.4)
Requirement already satisfied: atomicwrites>=1.0 in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (1.4.0)
Requirement already satisfied: toml in d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (0.10.2)
Requirement already satisfied: zipp>=0.5 in d:\python37\lib\site-packages (from importlib-metadata>=0.12->pytest>=4.5.0->allure-pytest) (1.2.0)
Requirement already satisfied: pyparsing>=2.0.2 in d:\python37\lib\site-packages (from packaging->pytest>=4.5.0->allure-pytest) (2.4.7)

5.2 pytest安装

pip3 install pytest

5.3 allure文件下载

  • 下载地址:https://github.com/allure-framework/allure2/releases;
    在这里插入图片描述
  • 往下找,找到下载链接,这里使用的Windows操作系统,所以下载zip文件:
    在这里插入图片描述
  • 如果以上下载比较慢,可以使用以下地址:

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

5.4 allure环境变量配置

  • 下载后解压到本地即可,比如:
    在这里插入图片描述
D:\allure-2.21.0\bin

  • 然后把以上路径添加到系统环境变量中:
    在这里插入图片描述

5.5 配置java环境

  • 因为allure是依赖java环境的,所以还需要配置java变量;
  • 详细java环境配置可以直接网上搜索即可,或者查看本文有关java的配置:
    Jmeter安装配置详细教程。

5.6 查看allure版本

allure --version

C:\Users\Administrator>allure --version
2.13.2

5.7 设计用例

  • 这里我们重新写一个脚本,不在以上代码框架中运行,因为Allure用的是pytest框架,以上时unittest框架;
  • 脚本为:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/7/7 
# 文件名称:test_xxx.py
# 作用:示例
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import pytest
import time

class TestCase01():
    def test_case_01(self):
        time.sleep(1)
        print("case01$$$$$$$$$$$$$$$$$$$$$")

    def test_case_02(self):
        time.sleep(1)
        print("case02$$$$$$$$$$$$$$$$$$$$$")

    def test_case_03(self):
        time.sleep(1)
        print("case03$$$$$$$$$$$$$$$$$$$$$")

    def test_case_04(self):
        time.sleep(1)
        print("case04$$$$$$$$$$$$$$$$$$$$$")

    def test_case_05(self):
        time.sleep(1)
        print("case05$$$$$$$$$$$$$$$$$$$$$")

    def test_case_06(self):
        time.sleep(1)
        print("case06$$$$$$$$$$$$$$$$$$$$$")

class TestCase02():
    def test_case_07(self):
        time.sleep(1)
        print("case07$$$$$$$$$$$$$$$$$$$$$")

    def test_case_08(self):
        time.sleep(1)
        print("case08$$$$$$$$$$$$$$$$$$$$$")

    def test_case_09(self):
        time.sleep(1)
        print("case08$$$$$$$$$$$$$$$$$$$$$")


if __name__ == '__main__':
    pytest.main(["-s", "test_xxx.py"])

5.8 执行方法

  • 执行pytest -n auto --alluredir=xxx/xxx/xxx来运行查看测试结果,其中--alluredir是指定报告存放的路径,比如:
pytest -n auto --alluredir=allure

  • 我只运行以上代码,所以我指定了要运行的脚本为:test_xxx.py,报告存放路径在当前脚本的路径:
pytest -n auto --alluredir=allure test_xxx.py

  • 运行:
gw0 [9] / gw1 [9] / gw2 [9] / gw3 [9] / gw4 [9] / gw5 [9] / gw6 [9] / gw7 [9]
.........                                                                                               [100%]
============================================= 9 passed in 4.66s ==============================================

5.9 查看报告方法

  • 运行完成后在test_xxx.py的相同路径下,生成一个allure的文件夹;
    在这里插入图片描述

  • 可以看到有很多文件,我们需要使用allure命令来显示测试报告:
    在这里插入图片描述

allure serve allure

(venv) F:\pytest_study\test_case\test_j>allure serve allure
Generating report to temp directory...
Report successfully generated to C:\Users\ADMINI~1\AppData\Local\Temp\743714976960418009\allure-report
Starting web server...
2023-07-07 11:16:28.270:INFO::main: Logging initialized @4392ms to org.eclipse.jetty.util.log.StdErrLog
Server started at <http://172.16.1.33:13959/>. Press <Ctrl+C> to exit

  • 使用以上命令会自动打开报告,如下:
    在这里插入图片描述

5.10 切换语言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.11 查看测试套件

在这里插入图片描述

5.12 查看运行图表数据

在这里插入图片描述

5.13 查看用例执行时间

在这里插入图片描述

5.14 查看用例数据

在这里插入图片描述

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

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

相关文章

十一、框架与大数据模型

frameset标签 1、frameset标签 这种结构&#xff0c;基本上被淘汰 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <frameset cols"25%,75%">&…

统计每列中不同值出现的次数.apply(pd.value_counts)

在Python 的pandas.DataFrame中有一种操作&#xff0c;它可以大大减轻我们的工作量&#xff0c;方便我们更快地进行数据分析&#xff0c;加快处理工作的效率。这就是 .apply(pd.value_counts) pandas 的强大&#xff0c;越使用&#xff0c;也就越爱了。现在就来夸夸它的作用啦…

统计学习导论(ISLR) 第八章树模型课后习题

统计学习导论(ISLR) 第八章树模型课后习题 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言…

二叉树 — 返回最大的二叉搜索子树大小

题目&#xff1a; 给定一棵二叉树的head节点&#xff0c;返回这颗二叉树中最大的二叉搜索子树的大小。 一颗二叉树来讲&#xff0c;可能整棵树不是搜索二叉树&#xff0c;但子树是一颗搜索二叉树。如下图所示&#xff0c;这时要返回这颗子搜索二叉树的最大节点个数。下图中&…

【node报错】cannot be loaded because running scripts is disabled on this system.

了解意思&#xff1a; cannot be loaded because running scripts is disabled on this system. 因为在该系统上禁用了运行脚本&#xff1b; 这个错误是由于你的系统执行策略&#xff08;Execution Policies&#xff09;禁止运行脚本导致的。Windows 系统默认情况下禁止运行…

ChatGPT前身GPT的论文-译文

写在前面 论文 Improving Language Understanding by Generative Pre-Training 地址 https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf ChatGPT火了&#xff0c;改论文作为ChatGPT的前身&#xff0c;可以从这里看到ChatGPT的原始影子。 摘要 自然语言…

制造业怎么应用大数据?_光点科技

随着信息技术的迅猛发展&#xff0c;大数据正逐渐成为各行各业的重要资源和工具。在制造业中&#xff0c;大数据的应用也逐渐得到了广泛关注。 制造业如何应用大数据&#xff1f; 首先&#xff0c;数据采集是制造业应用大数据的重要一环。制造业的生产过程中涉及到大量的数据&a…

二叉树OJ题:LeetCode--101.对称二叉树

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下LeetCode中第144道二叉树OJ题&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个 人…

49天精通Java,第0天,编程语言类型有哪些?我心中的TOP1编程语言,什么是java跨平台性?

目录 一、常见的编程语言类型1、机器语言2、汇编语言3、高级语言 二、计算机编程语言三、跨平台性1、跨平台的优势包括&#xff1a;2、实现跨平台的方式包括&#xff1a; 四、Java的跨平台性五、java运行时和虚拟机六、Java内存管理和Java垃圾回收1、Java内存管理2、Java垃圾回…

基于matlab使用虚幻引擎模拟开发视觉SLAM算法(附源码)

一、前言 本示例展示了如何使用从虚幻引擎模拟环境中获取的图像数据开发可视化同步定位和映射&#xff08;SLAM&#xff09;算法。 视觉SLAM是计算摄像机相对于周围环境的位置和方向&#xff0c;同时映射环境的过程。开发可视化 SLAM 算法并评估其在不同条件下的性能是一项具…

抖音短视频矩阵管理系统源码开发部署(开源定制)

一、什么是短视频矩阵管理系统&#xff1f; 短视频矩阵管理系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案&#xff0c;具体包含&#xff1a;点赞关注评论主动私信 &#xff0c;评论区回复&#xff0c;自动潜客户挖掘&#xff0c;矩阵号营销…

今日小课堂:会议录音转文字怎么弄的

小君&#xff1a;嘿&#xff0c;你知道怎么把录音转成文字吗&#xff1f;我今天录了一个重要的会议&#xff0c;但是时间有限&#xff0c;需要快速整理笔记。 小辉&#xff1a;当然&#xff01;你可以使用一些工具来将录音转换为文字。最简单的方法就是利用语音转文字的应用。…

C语言 while 和 do while 区别

先简单介绍一下C语言中的while和do while语句 while循环 语法 C 语言中 while 循环的语法&#xff1a; while(condition) {statement(s); } 在这里&#xff0c;statement(s) 可以是一个单独的语句&#xff0c;也可以是几个语句组成的代码块。 condition 可以是任意的表达…

Kubernetes 启动Pod的方法-Pod的调度算法-Pod间的通信-k8s的控制器-Pod资源控制-发布Service服务

目录 Pod 参考文档&#xff1a;Pod | Kubernetes Pod配置文件&#xff1a;simple-pod.yaml 对master进行如下操作 Pod的状态有&#xff1a; 参考文档&#xff1a;(70条消息) Pod生命周期中的状态解释_pod状态_闹玩儿扣眼珠子的博客-CSDN博客 进入Pod内的nginx容器&#…

【Ubuntu】系统U盘变为普通U盘

如果您在 Ubuntu 系统上没有磁盘工具可用&#xff0c;您可以尝试使用命令行工具来格式化系统 U 盘。请按照以下步骤进行操作&#xff1a; 打开终端&#xff1a;在 Ubuntu 桌面上&#xff0c;按下 Ctrl Alt T 快捷键&#xff0c;或者在应用程序菜单中搜索并打开 "终端&qu…

PPT文件,使用python删除链接

文章目录 一、需求二、处理方式三、代码实现 一、需求 如下图所示&#xff0c;将PPT文件中的链接进行删除&#xff0c;且不保留链接名。 原始文件&#xff1a; 处理后文件&#xff1a; 二、处理方式 使用python 的pptx模块进行处理&#xff0c;读取文字块&#xff0c;然后…

FPGA实验二:模可变计数器设计

目录 一、实验目的 二、实验要求 三、实验代码 1.实验源码 2.部分代码设计思路分析 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 3、下载测试结果及分析 五、实验心得 1.解决实验中遇到的困难及解决 2.完成实验后的心得 一、实验目的 &#xff08;1&#xf…

【Linux系统编程】Linux 软件包管理器——yum

文章目录 1. 什么是yum2. yum的使用2.1 注意事项2.2 查看软件包2.3 如何安装软件2.4 如何卸载软件2.5 yum源 这篇文章我们要学习的是—— Linux 软件包管理器 yum。 1. 什么是yum 首先来问大家一个问题&#xff1a; 我们平时使用的手机上&#xff0c;都会有一个应用叫做“应…

【全栈开发指南】OAuth2授权获取token调试接口的方式

在我们实际应用接口的调用调试过程中&#xff0c;需要用到token或者刷新token&#xff0c;GitEgg支持OAuth2.0协议进行认证授权&#xff0c;这里介绍说明如何通过Postman获取token和refresh_token并进行接口调试。 1、使用密码模式获取token 根据spring-security-oauth2的实现…

创建虚拟机安装windowserver2016服务器(NETBASE第二课)

2 操作流程 文件-新建虚拟机-自定义&#xff08;高级&#xff09;-下一步-稍后安装操作系统-下一步-客户机操作系统-选择Windows 10 X64-下一步-虚拟机名输入win10-1-位置选择&#xff08;E:\虚拟机\Win10-1&#xff09;-下一步-固件类型选择UEFI-下一步-下一步-输入内存2048M-…