接口自动化 ——fixture allure

一.参数化实现数据驱动

上一篇介绍了参数化,这篇 说说用参数化实现数据驱动。在有很多测试用例的时候,可以将测试用例都存储在文件里,进行读写调用。本篇主要介绍 csv 文件和 json 文件。

1.读取 csv 文件数据

首先创建 csv 文件,将数据 放在csv文件中。然后读取csv 文件的内容,并将读取的 内容返回

import csv# 读取csv 函数
def get_csv_data():list1 = []# 输入存储csv 文件 的目录file = csv.reader(open(r"D:\python_project\API_Auto\API2\data\x_y.csv", encoding="utf-8"))# 输出 csv 文件对象,需要获取文件对象中的内容,使用for 循环进行遍历# print(file)for i in file:# print(i)list1.append(i)else:#  print(list1)return list1

 再在测试用例中进行调用上面的函数,得到返回的参数,作为参数 


import pytestfrom commons.tools import get_csv_data@pytest.mark.parametrize(["x", "y"], get_csv_data())
def test_001(x, y):print(f"x: {x}")print(f"y: {y}")assert x == y

 2.读取json文件数据 

思路还是一样,先 创建json文件,将数据放进去

再读取json文件中的数据,并将 读取后的数据作为返回值

# 读取json 数据
def get_json_data():# json 数据可以直接读取file = open(r"D:\python_project\API_Auto\API2\data\x_y.json", encoding="utf-8")content = file.read()print(content)  # 类型是字符串 “[[1,2],[1,3],[2,3],[5,10],[2,2]]”,有引号不能直接用,需要去掉引号:eval()l = eval(content)# print(l)# print(type(l))  # <class 'list'>return l

在 调用这个方法来得到返回值

# 读取data 目录下的x_y json数据格式的测试用例import pytestfrom commons.tools import get_json_data@pytest.mark.parametrize(["x", "y"], get_json_data())
def test_002(x, y):print(f"x: {x}")print(f"y: {y}")assert x == y

二.fixture

fixture 的主要作用是固定测试环境。在执行用例时,执行 用例之前,执行完用例之后的操作就可以用fixture

1.fixture 创建

定义一个函数,然后加上yield 关键字,再加上pytest 框架装饰器就成了fixture,下面的func,func1都是fixture,func比func1多了一个返回值666

@pytest.fixture()
def func():print("用例执行之前")yield 666print("用例执行之后")@pytest.fixture()
def func1():print("用例执行之前")yield print("用例执行之后")

2.fixture调用

fixture默认是不会自动调用的 ,需要在形参处调用fixture名

# 调用fixture
def test_001(func):print(f"获取fixture:{func}")assert 1 == 1def test_002():assert 1 == 2class TestAAA:# 调用fixturedef test_003(self, func):assert 1 == 1# 获取func 的返回值666print(f"获取fixture:{func}")def test_004(self):assert 1 == 2

输出结果为:

PS D:\python_project\API_Auto\API2> pytest  -k test_z1_fixture定义和使用.py
================================================================= test session starts =================================================================
platform win32 -- Python 3.10.6, pytest-8.3.5, pluggy-1.5.0 -- C:\Users\18481\AppData\Local\Programs\Python\Python310\python.exe
cachedir: .pytest_cache
rootdir: D:\python_project\API_Auto\API2
configfile: pytest.ini
plugins: allure-pytest-2.13.5, result-log-1.2.2
collecting ... [[1,2],[1,3],[2,3],[5,10],[2,2]
]
collected 27 items / 23 deselected / 4 selected                                                                                                        testcases/test_z1_fixture定义和使用.py::test_001 用例执行之前
获取fixture:666
PASSED用例执行之后testcases/test_z1_fixture定义和使用.py::test_002 FAILED
testcases/test_z1_fixture定义和使用.py::TestAAA::test_003 用例执行之前
获取fixture:666
PASSED用例执行之后testcases/test_z1_fixture定义和使用.py::TestAAA::test_004 FAILED====================================================================== FAILURES ======================================================================= 
______________________________________________________________________ test_002 _______________________________________________________________________ def test_002():
>       assert 1 == 2
E       assert 1 == 2testcases\test_z1_fixture定义和使用.py:26: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
WARNING  pytest_result_log:plugin.py:122 ---------------Start: testcases/test_z1_fixture定义和使用.py::test_002---------------
---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
WARNING  pytest_result_log:plugin.py:128 ----------------End: testcases/test_z1_fixture定义和使用.py::test_002----------------
__________________________________________________________________ TestAAA.test_004 ___________________________________________________________________ self = <testcases.test_z1_fixture定义和使用.TestAAA object at 0x000002AB6C7CA170>def test_004(self):
>       assert 1 == 2
E       assert 1 == 2testcases\test_z1_fixture定义和使用.py:35: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
WARNING  pytest_result_log:plugin.py:122 ----------Start: testcases/test_z1_fixture定义和使用.py::TestAAA::test_004-----------
---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
WARNING  pytest_result_log:plugin.py:128 -----------End: testcases/test_z1_fixture定义和使用.py::TestAAA::test_004------------
=============================================================== short test summary info =============================================================== 
FAILED testcases/test_z1_fixture定义和使用.py::test_002 - assert 1 == 2
FAILED testcases/test_z1_fixture定义和使用.py::TestAAA::test_004 - assert 1 == 2
===================================================== 2 failed, 2 passed, 23 deselected in 0.19s ======================================================

从结果 可以看到,只有test_001和 test_003调用了fixture.

fixture 默认不会自动调用,但是我们也可以通过参数来让他 自动调用 ,就不需要在往形参里传了。只需要将 对应的参数 autouse 的值修改为 True:

@pytest.fixture(autouse=True)
def func():print("用例执行之前")yield 666print("用例执行之后")
def test_001():assert 1 == 1def test_002():assert 1 == 2class TestAAA:def test_003(self):assert 1 == 1def test_004(self):assert 1 == 2

输出结果 为:

PS D:\python_project\API_Auto\API2> pytest  -k test_z1_fixture定义和使用.py
================================================================= test session starts =================================================================
platform win32 -- Python 3.10.6, pytest-8.3.5, pluggy-1.5.0 -- C:\Users\18481\AppData\Local\Programs\Python\Python310\python.exe
cachedir: .pytest_cache
rootdir: D:\python_project\API_Auto\API2
configfile: pytest.ini
plugins: allure-pytest-2.13.5, result-log-1.2.2
collecting ... [[1,2],[1,3],[2,3],[5,10],[2,2]
]
collected 27 items / 23 deselected / 4 selected                                                                                                        testcases/test_z1_fixture定义和使用.py::test_001 用例执行之前
PASSED用例执行之后testcases/test_z1_fixture定义和使用.py::test_002 用例执行之前
FAILED用例执行之后testcases/test_z1_fixture定义和使用.py::TestAAA::test_003 用例执行之前
PASSED用例执行之后testcases/test_z1_fixture定义和使用.py::TestAAA::test_004 用例执行之前
FAILED用例执行之后====================================================================== FAILURES ======================================================================= 
______________________________________________________________________ test_002 _______________________________________________________________________ def test_002():
>       assert 1 == 2
E       assert 1 == 2testcases\test_z1_fixture定义和使用.py:26: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
WARNING  pytest_result_log:plugin.py:122 ---------------Start: testcases/test_z1_fixture定义和使用.py::test_002---------------
---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
WARNING  pytest_result_log:plugin.py:128 ----------------End: testcases/test_z1_fixture定义和使用.py::test_002----------------
__________________________________________________________________ TestAAA.test_004 ___________________________________________________________________ self = <testcases.test_z1_fixture定义和使用.TestAAA object at 0x0000017278D0B760>def test_004(self):
>       assert 1 == 2
E       assert 1 == 2testcases\test_z1_fixture定义和使用.py:35: AssertionError
----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
WARNING  pytest_result_log:plugin.py:122 ----------Start: testcases/test_z1_fixture定义和使用.py::TestAAA::test_004-----------
---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
WARNING  pytest_result_log:plugin.py:128 -----------End: testcases/test_z1_fixture定义和使用.py::TestAAA::test_004------------
=============================================================== short test summary info =============================================================== 
FAILED testcases/test_z1_fixture定义和使用.py::test_002 - assert 1 == 2
FAILED testcases/test_z1_fixture定义和使用.py::TestAAA::test_004 - assert 1 == 2
===================================================== 2 failed, 2 passed, 23 deselected in 0.22s ====================================================== 

可以看到,这次没有将fixture名放在形参处,所有的测试用例都调用了fixture

3.fixture作用域

fixture 支持五级作用域

  • function:函数,方法级别(默认)

像上面未设置作用域,就是默认的function级别,在每个函数执行前触发fixture前置,在每个函数执行后触发fixture后置。

  • class:类
    • 当类中第一个用例开始执行之前,会触发fixture前置
    • 当类中最后一个用例开始执行之后,会触发fixture后置
      import pytest@pytest.fixture(scope='class', autouse=True)
      def func():print("用例执行之前")yield 666print("用例执行之后")def test_001():# print(f"获取fixture:{func}")assert 1 == 1def test_002():assert 1 == 2class TestAAA:def test_003(self):assert 1 == 1# print(f"获取fixture:{func}")def test_004(self):assert 1 == 2
      

      执行结果为:

      PS D:\python_project\API_Auto\API2> pytest -k test_z2_fixture的作用域.py
      ================================================================= test session starts =================================================================
      platform win32 -- Python 3.10.6, pytest-8.3.5, pluggy-1.5.0 -- C:\Users\18481\AppData\Local\Programs\Python\Python310\python.exe
      cachedir: .pytest_cache
      rootdir: D:\python_project\API_Auto\API2
      configfile: pytest.ini
      plugins: allure-pytest-2.13.5, result-log-1.2.2
      collecting ... [[1,2],[1,3],[2,3],[5,10],[2,2]
      ]
      collected 27 items / 23 deselected / 4 selected                                                                                                        testcases/test_z2_fixture的作用域.py::test_001 用例执行之前
      PASSED用例执行之后testcases/test_z2_fixture的作用域.py::test_002 用例执行之前
      FAILED用例执行之后testcases/test_z2_fixture的作用域.py::TestAAA::test_003 用例执行之前
      PASSED
      testcases/test_z2_fixture的作用域.py::TestAAA::test_004 FAILED用例执行之后====================================================================== FAILURES =======================================================================
      ______________________________________________________________________ test_002 _______________________________________________________________________ def test_002():
      >       assert 1 == 2
      E       assert 1 == 2testcases\test_z2_fixture的作用域.py:25: AssertionError
      ----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
      WARNING  pytest_result_log:plugin.py:122 ---------------Start: testcases/test_z2_fixture的作用域.py::test_002----------------
      ---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
      WARNING  pytest_result_log:plugin.py:128 ----------------End: testcases/test_z2_fixture的作用域.py::test_002-----------------
      __________________________________________________________________ TestAAA.test_004 ___________________________________________________________________ self = <testcases.test_z2_fixture的作用域.TestAAA object at 0x000001F49CA9A770>def test_004(self):
      >       assert 1 == 2
      E       assert 1 == 2testcases\test_z2_fixture的作用域.py:34: AssertionError
      ----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
      WARNING  pytest_result_log:plugin.py:122 -----------Start: testcases/test_z2_fixture的作用域.py::TestAAA::test_004-----------
      ---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
      WARNING  pytest_result_log:plugin.py:128 ------------End: testcases/test_z2_fixture的作用域.py::TestAAA::test_004------------
      =============================================================== short test summary info =============================================================== 
      FAILED testcases/test_z2_fixture的作用域.py::test_002 - assert 1 == 2
      FAILED testcases/test_z2_fixture的作用域.py::TestAAA::test_004 - assert 1 == 2
      ===================================================== 2 failed, 2 passed, 23 deselected in 0.21s ====================================================== 

可以看到,对于TestAAA这个类,第一个用例开始执行之前,触发了fixture前置,在、最后一个用例执行之后,触发了fixture后置。而不是想之前每个函数都触发了fixture前置和后置

  • module:模块(文件)
    • 当模块中第一个用例开始执行之前,会触发fixture前置
    • 当模块中最后一个用例开始执行之后,会触发fixture后置
      
      import pytest@pytest.fixture(scope='module', autouse=True)
      def func():print("用例执行之前")yield 666print("用例执行之后")def test_001():# print(f"获取fixture:{func}")assert 1 == 1def test_002():assert 1 == 2class TestAAA:def test_003(self):assert 1 == 1# print(f"获取fixture:{func}")def test_004(self):assert 1 == 2
      

      执行结果为:

      PS D:\python_project\API_Auto\API2> pytest -k test_z2_fixture的作用域.py
      ================================================================= test session starts =================================================================
      platform win32 -- Python 3.10.6, pytest-8.3.5, pluggy-1.5.0 -- C:\Users\18481\AppData\Local\Programs\Python\Python310\python.exe
      cachedir: .pytest_cache
      rootdir: D:\python_project\API_Auto\API2
      configfile: pytest.ini
      plugins: allure-pytest-2.13.5, result-log-1.2.2
      collecting ... [[1,2],[1,3],[2,3],[5,10],[2,2]
      ]
      collected 27 items / 23 deselected / 4 selected                                                                                                        testcases/test_z2_fixture的作用域.py::test_001 用例执行之前
      PASSED
      testcases/test_z2_fixture的作用域.py::test_002 FAILED
      testcases/test_z2_fixture的作用域.py::TestAAA::test_003 PASSED
      testcases/test_z2_fixture的作用域.py::TestAAA::test_004 FAILED用例执行之后====================================================================== FAILURES ======================================================================= 
      ______________________________________________________________________ test_002 _______________________________________________________________________ def test_002():
      >       assert 1 == 2
      E       assert 1 == 2testcases\test_z2_fixture的作用域.py:25: AssertionError
      ----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
      WARNING  pytest_result_log:plugin.py:122 ---------------Start: testcases/test_z2_fixture的作用域.py::test_002----------------
      ---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
      WARNING  pytest_result_log:plugin.py:128 ----------------End: testcases/test_z2_fixture的作用域.py::test_002-----------------
      __________________________________________________________________ TestAAA.test_004 ___________________________________________________________________ self = <testcases.test_z2_fixture的作用域.TestAAA object at 0x0000022EF0DEA8C0>def test_004(self):
      >       assert 1 == 2
      E       assert 1 == 2testcases\test_z2_fixture的作用域.py:34: AssertionError
      ----------------------------------------------------------------- Captured log setup ------------------------------------------------------------------ 
      WARNING  pytest_result_log:plugin.py:122 -----------Start: testcases/test_z2_fixture的作用域.py::TestAAA::test_004-----------
      ---------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------- 
      WARNING  pytest_result_log:plugin.py:128 ------------End: testcases/test_z2_fixture的作用域.py::TestAAA::test_004------------
      =============================================================== short test summary info =============================================================== 
      FAILED testcases/test_z2_fixture的作用域.py::test_002 - assert 1 == 2
      FAILED testcases/test_z2_fixture的作用域.py::TestAAA::test_004 - assert 1 == 2
      ===================================================== 2 failed, 2 passed, 23 deselected in 0.21s ====================================================== 

      可以看到,在这个文件的第一个用例执行前触发了fixture前置,最后一个用例执行后触发了fixture后置

  • 以下2种级别只能在conftest.py文件生效(暂不介绍)
    • session:整个项目级别
    • package:包级别

4.fixture结合conftest.py文件使用

conftest.py文件在项目中专门用来管理fixture的文件 模块名字是固定不能修改,而且使用fixture不需要导包,会自动检测

首先创建conftest.py文件 ,在文件中创建fixture

然后 就可以在其他文件中调用fixture,并且不需要导包

# conftest.py 文件下的 fixture 可以 直接使用
def test_001(func1):print("测试用例001")def test_002(func2):print("测试用例002")def test_003(func3):print("测试用例003")

测试结果为 :

PS D:\python_project\API_Auto\API2> pytest -k test_z3_fixture结合conftestpy文件使用.py
================================================================= test session starts =================================================================
platform win32 -- Python 3.10.6, pytest-8.3.5, pluggy-1.5.0 -- C:\Users\18481\AppData\Local\Programs\Python\Python310\python.exe
cachedir: .pytest_cache
rootdir: D:\python_project\API_Auto\API2
configfile: pytest.ini
plugins: allure-pytest-2.13.5, result-log-1.2.2
collecting ... [[1,2],[1,3],[2,3],[5,10],[2,2]
]
collected 27 items / 24 deselected / 3 selected                                                                                                        testcases/test_z3_fixture结合conftestpy文件使用.py::test_001 这是前置条件1
测试用例001
PASSED这是后置条件1testcases/test_z3_fixture结合conftestpy文件使用.py::test_002 这是前置条件2
测试用例002
PASSED这是后置条件2testcases/test_z3_fixture结合conftestpy文件使用.py::test_003 这是前置条件3
测试用例003
PASSED这是后置条件3========================================================== 3 passed, 24 deselected in 0.13s =========================================================== 

三.日志记录Log

记录日志信息主要的作用是,更好的调试监控和排查测试过程中的问题

1.安装日志记录插件

pip install pytest-result-log

2.在pytest.ini配置文件中进行配置

log_file = ./logs/pytest.log
log_file_level = info
log_file_format = %(levelname)-8s %(asctime)s [%(name)s:%(lineno)s]  : %(message)s
log_file_date_format  = %Y-%m-%d %H:%M:%S; 记录用例执行结果
result_log_enable = 1; 记录用例分割线
result_log_separator = 1;分割线等级
result_log_level_separator  = warning;异常信息等级
result_log_level_verbose = info

然后执行 测试用例,就会在目录下生成 logs 目录,打开目录中的文件就可以 查看 log了

WARNING  2025-04-19 18:39:32 [pytest_result_log:122]  : ---------Start: testcases/test_z3_fixture结合conftestpy文件使用.py::test_001----------
INFO     2025-04-19 18:39:32 [pytest_result_log:190]  : test status is PASSED (testcases/test_z3_fixture结合conftestpy文件使用.py::test_001): 
WARNING  2025-04-19 18:39:32 [pytest_result_log:128]  : ----------End: testcases/test_z3_fixture结合conftestpy文件使用.py::test_001-----------
WARNING  2025-04-19 18:39:32 [pytest_result_log:122]  : ---------Start: testcases/test_z3_fixture结合conftestpy文件使用.py::test_002----------
INFO     2025-04-19 18:39:32 [pytest_result_log:190]  : test status is PASSED (testcases/test_z3_fixture结合conftestpy文件使用.py::test_002): 
WARNING  2025-04-19 18:39:32 [pytest_result_log:128]  : ----------End: testcases/test_z3_fixture结合conftestpy文件使用.py::test_002-----------
WARNING  2025-04-19 18:39:32 [pytest_result_log:122]  : ---------Start: testcases/test_z3_fixture结合conftestpy文件使用.py::test_003----------
INFO     2025-04-19 18:39:32 [pytest_result_log:190]  : test status is PASSED (testcases/test_z3_fixture结合conftestpy文件使用.py::test_003): 
WARNING  2025-04-19 18:39:32 [pytest_result_log:128]  : ----------End: testcases/test_z3_fixture结合conftestpy文件使用.py::test_003-----------

四.测试报告 allure

allure报告是一种非常流行的测试报告工具,可以结合多种测试框架集成使用,它提供了一个直观界面,帮助开发人员和测试人员分析测试结果

1.安装 allure

大家可以搜一搜哈,将这个的很多,这里就不多说了。安装完allure后,记得安装第三方 库

pip install allure-pytest

2.使用allure

需要在main.py模块中配置测试报告相关参数

import os
import pytest# 放测试用例的目录
pytest.main(['-sv', r'D:\python_project\API_Auto\API2\testcases', '--clean-alluredir', '--alluredir', './allure_result'])
# 清理旧的测试报告,将allure的测试结果分析生成HTML报告
os.system('allure generate ./allure_result -o ./report --clean')

配置好后右键运行右键main.py模块运行测试用例,然后 找到生成的report目录下的 index.html文件,选一个浏览器打开 就能看到allure报告了

点击 左下角可以切换语言

3.编辑allure

3.1.添加测试步骤

在测试用例上添加 @allure.step(),还可以与参数化之类一起使用

# a.添加测试步骤 @allure.step("test_0001")
@allure.step("test_0001")
@pytest.mark.parametrize(("x", "y"),[[1, 2],[3, 3],[2, 5]]
)
def test_001(x, y):print("AAABBBB")assert x == y

使用后结果为:

3.2.添加测试描述信息

能够给测试用例在报告中记录每一步执行信息

allure.attach()

# b.添加测试描述信息,给测试用例再报告中输出每一步的执行信息 allure.attach()
@allure.step("test_0002")
def test_002():allure.attach("这是002")allure.attach("开始 执行")print("AAABBBB")allure.attach("这是002")allure.attach("执行完毕 ")assert 1 == 1

结果为:

3.3添加严重程度 

bug有不同的严重等级:

  • blocker        阻塞缺陷(功能未实现,无法下一步)
  • critical       严重缺陷(功能点缺失)
  • normal         一般缺陷(边界情况,格式错误,默认bug等级
  • minor          次要缺陷(界面错误与ui需求不符)
  • trivial        轻微缺陷(必须项无提示,或者提示不规范)

可以在报告中 看到,如果没有特别说明,优先级默认都是normal 

@allure.severity(allure.severity_level.CRITICAL)
@allure.severity(allure.severity_level.CRITICAL)
def test_003():print("AAABBBB")assert 1 == 2

测试结果 为

可以看到,优先级变为了设置的 

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

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

相关文章

`peft`(Parameter-Efficient Fine-Tuning:高效微调)是什么

peft(Parameter-Efficient Fine-Tuning:高效微调)是什么 peft库是Hugging Face推出的用于高效参数微调的库,它能在不调整模型全部参数的情况下,以较少的可训练参数对预训练模型进行微调,从而显著降低计算资源需求和微调成本。以下从核心功能、优势、常见微调方法、使用场…

编程常见错误归类

上一篇讲了调试&#xff0c;今天通过一个举例回忆一下上一篇内容吧&#xff01; 1. 回顾&#xff1a;调试举例 在VS2022、X86、Debug的环境下&#xff0c;编译器不做任何优化的话&#xff0c;下⾯代码执⾏的结果是啥&#xff1f; #include <stdio.h> int main() {int …

在windows上交叉编译opencv供RK3588使用

环境 NDK r27、RK3588 安卓板子、Android 12 步骤操作要点1. NDK 下载选择 r27 版本&#xff0c;解压到无空格路径&#xff08;如 C:/ndk&#xff09;2. 环境变量配置添加 ANDROID_NDK_ROOT 和工具链路径到系统 PATH3. CMake 参数调整指定 ANDROID_NATIVE_API_LEVEL31、ANDRO…

浅析MySQL事务锁

在 MySQL 中,事务锁是用于确保数据一致性和并发控制的重要机制。事务锁可以帮助防止多个事务同时修改同一数据,从而避免数据不一致和脏读、不可重复读、幻读等问题。 以下是 MySQL 事务锁的关键点总结: 事务锁:用于确保数据一致性和并发控制。锁的类型: 行级锁:InnoDB,粒…

vue3 文件下载(excel/rar/zip)

安装axios npm install axios 在项目中引入 import axios from axios; 1、get接口excel文件下载 const file_key ref() const downLoadExcel (value:any) > {//file_key.value value axios({method: "get",url: "/api/da/download_excel/",//url:…

RT-Thread RTThread studio 初使用

RT-Thread Studio 下载 https://www.rt-thread.org/studio.html 安装使用 https://bbs.elecfans.com/jishu_2425653_1_1.html 4 编译问题解决 问题一&#xff1a;error: unknown type name clock_t 具体的类型值是在sys/_types.h中定义的&#xff0c;需要包含sys/_types.h 这个…

汉诺塔专题:P1760 通天之汉诺塔 题解 + Problem D: 汉诺塔 题解

1. P1760 通天之汉诺塔 题解 题目背景 直达通天路小A历险记第四篇 题目描述 在你的帮助下&#xff0c;小 A 成功收集到了宝贵的数据&#xff0c;他终于来到了传说中连接通天路的通天山。但是这距离通天路仍然有一段距离&#xff0c;但是小 A 突然发现他没有地图&#xff0…

探索 HumanoidBench:类人机器人学习的新平台

在科技飞速发展的当下&#xff0c;类人机器人逐渐走进我们的视野&#xff0c;它们有着和人类相似的外形&#xff0c;看起来能像人类一样在各种环境里完成复杂任务&#xff0c;潜力巨大。但实际上&#xff0c;让类人机器人真正发挥出实力&#xff0c;还面临着重重挑战。 这篇文…

数据结构中的宝藏秘籍之广义表

广义表&#xff0c;也被称作列表&#xff08;Lists&#xff09;&#xff0c;是一种递归的数据结构。它就像一个神秘的盒子&#xff0c;既可以装着单个元素&#xff08;原子&#xff09;&#xff0c;也可以嵌套着其他的盒子&#xff08;子列表&#xff09;。比如广义表 (a (b c)…

【jenkins】首次配置jenkins

第一步&#xff0c;输入管理员密码 cat /var/jenkins_home/secrets/initialAdminPassword第二步&#xff0c;点击安装推荐的插件 第三步&#xff0c;创建管理员用户 第四步&#xff0c;返回实例 第五步&#xff0c; 升级jenkins 第六步&#xff0c; 修复提示 第七步&#xff0c…

Android studio—socketIO库return与emit的使用

文章目录 一、Socket.IO库简单使用说明1. 后端 Flask Flask-SocketIO2. Android 客户端集成 Socket.IO3. 布局文件注意事项 二、接受服务器消息的二种方法1. 客户端接收通过 emit 发送的消息功能使用场景后端代码&#xff08;Flask-SocketIO&#xff09;客户端代码&#xff08…

用Prompt 技术【提示词】打造自己的大语言智能体

机器如何按照人类的指令执行任务的探索 机器需具备理解任务叙述的能力&#xff0c;以便能够按照人类的指令执行任务&#xff0c;为机器提供一些范例作为参考&#xff0c;使其能够理解该执行的任务类型。这样的学习方式称为“Instruction learning”&#xff0c;透过精心设计的…

Node.js 数据库 事务 项目示例

1、参考&#xff1a;JavaScript语言的事务管理_js 函数 事务性-CSDN博客 或者百度搜索&#xff1a;Nodejs控制事务&#xff0c; 2、实践 2.1、对于MySQL或MariaDB&#xff0c;你可以使用mysql或mysql2库&#xff0c;并结合Promise或async/await语法来控制事务。 使用 mysql2…

【Mamba】MambaVision论文阅读

文章目录 MambaVision一、研究背景&#xff08;一&#xff09;Transformer vs Mamba​&#xff08;二&#xff09;Mamba in CV​ 二、相关工作​&#xff08;一&#xff09;Transformer 在计算机视觉领域的进展​&#xff08;二&#xff09;Mamba 在计算机视觉领域的探索​ 三、…

前端面试宝典---原型链

引言----感谢大佬的讲解 大佬链接 原型链示意图 原型链问题中需要记住一句话&#xff1a;一切变量和函数都可以并且只能通过__proto__去找它所在原型链上的属性与方法 原型链需要注意的点 看上图可以发现 函数&#xff08;构造函数&#xff09;也可以通过__proto__去找到原…

C语言---FILE结构体

一、FILE 结构体的本质与定义 基本概念 FILE 是 C 语言标准库中用于封装文件操作的结构体类型&#xff0c;定义于 <stdio.h> 中。它代表一个“文件流”&#xff0c;可以是磁盘文件、标准输入输出&#xff08;stdin/stdout/stderr&#xff09;或其他输入输出设备。 实现特…

基于大模型的直肠息肉诊疗全流程风险预测与方案优化研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型技术概述 2.1 大模型原理简介 2.2 大模型在医疗领域应用现状 三、直肠息肉术前预测与准备 3.1 基于大模型的术前风险预测 3.1.1 息肉性质预测 3.1.2 手术难度预测 3.2 基于预测结果的术前准备 3.…

华为OD机试真题——MELON的难题(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析&#xff1b; 并提供Java、python、JavaScript、C、C语言、GO六种语言的最佳实现方式&#xff01; 2025华为OD真题目录全流程解析/备考攻略/经验分享 华为OD机试真题《MELON的…

AI数据分析与BI可视化结合:解锁企业决策新境界

大家好&#xff0c;今天我们来聊聊一个前沿而热门的话题——AI数据分析与BI可视化结合&#xff0c;如何携手推动企业决策迈向新高度。在数据爆炸的时代&#xff0c;企业如何高效利用这些数据&#xff0c;成为制胜的关键。AI数据分析与BI可视化的结合&#xff0c;正是解锁这一潜…

克服储能领域的数据处理瓶颈及AI拓展

对于储能研究人员来说&#xff0c;日常工作中经常围绕着一项核心但有时令人沮丧的任务&#xff1a;处理实验数据。从电池循环仪的嗡嗡声到包含电压和电流读数的大量电子表格&#xff0c;研究人员的大量时间都花在了提取有意义的见解上。长期以来&#xff0c;该领域一直受到对专…