随着人工智能(AI)技术的迅猛发展,软件测试领域正经历深刻变革。传统手动测试和基于规则的自动化测试已难以应对日益复杂的系统架构与海量用户行为。AI测试通过引入机器学习、自然语言处理、计算机视觉等技术,显著提升了测试效率、覆盖率和缺陷发现能力。本文将深入探讨AI在三大核心测试场景中的应用:自动化测试框架、智能缺陷检测和A/B测试优化,并结合代码示例、Mermaid流程图、Prompt设计、可视化图表等多维度内容,全面展示AI测试的技术实现路径与最佳实践。


一、AI驱动的自动化测试框架

1.1 背景与挑战

传统自动化测试依赖于固定的脚本(如Selenium、Appium),需人工编写元素定位逻辑、操作步骤和断言规则。这种方式存在以下问题:

  • 维护成本高:UI变更导致大量脚本失效;
  • 覆盖率低:难以覆盖所有用户路径;
  • 可读性差:脚本缺乏语义理解,调试困难;
  • 适应性弱:无法应对动态内容或模糊匹配场景。

AI赋能的自动化测试框架通过视觉识别、自然语言解析、行为预测等方式,实现更智能、自适应的测试执行。

1.2 架构设计与流程图(Mermaid)

graph TD
A[用户输入自然语言需求] --> B(NLP解析引擎)
B --> C{是否为测试用例?}
C -->|是| D[生成结构化测试步骤]
C -->|否| E[返回澄清问题]
D --> F[AI元素识别模型]
F --> G[定位页面元素(图像/文本/XPath)]
G --> H[执行操作(点击/输入/滑动)]
H --> I[结果验证(视觉比对/OCR/语义分析)]
I --> J{通过?}
J -->|否| K[记录缺陷 + 截图 + 日志]
J -->|是| L[继续下一步]
L --> M{是否完成?}
M -->|否| H
M -->|是| N[生成测试报告]
N --> O[可视化仪表盘]

说明:该流程图展示了从自然语言输入到测试执行与结果反馈的完整闭环。AI模型贯穿于元素识别、操作决策和结果验证环节。

1.3 核心组件与代码示例

1.3.1 自然语言到测试用例转换(NLP解析)

使用Hugging Face的transformers库加载预训练模型,将用户输入“点击登录按钮,输入用户名‘test’,提交表单”转化为结构化指令。

from transformers import pipeline

# 初始化NLP解析管道
nlp_pipeline = pipeline("text2text-generation", model="t5-small")

def parse_test_instruction(instruction: str):
input_text = f"translate to test steps: {instruction}"
output = nlp_pipeline(input_text, max_length=100, num_return_sequences=1)
return output[0]['generated_text']

# 示例
instruction = "Click the login button, enter username 'test', and submit the form."
steps = parse_test_instruction(instruction)
print(steps)
# 输出示例: click(login_button), input(username_field, 'test'), click(submit_button)

1.3.2 基于CV的元素识别(OpenCV + YOLOv8)

使用YOLOv8训练自定义UI元素检测模型,识别按钮、输入框等控件。

import cv2
from ultralytics import YOLO

# 加载预训练UI元素检测模型
model = YOLO('ui_element_detector.pt')

def detect_elements(screenshot_path):
img = cv2.imread(screenshot_path)
results = model(img)

elements = []
for r in results:
boxes = r.boxes
for box in boxes:
x1, y1, x2, y2 = box.xyxy[0].cpu().numpy().astype(int)
conf = box.conf.cpu().numpy()[0]
cls = int(box.cls.cpu().numpy()[0])
label = model.names[cls]
elements.append({
'label': label,
'bbox': (x1, y1, x2, y2),
'confidence': conf
})
# 绘制边框
cv2.rectangle(img, (x1, y1), (x2, y2), (0,255,0), 2)
cv2.putText(img, f"{label}:{conf:.2f}", (x1, y1-10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,255,0), 1)

cv2.imwrite("annotated_screenshot.png", img)
return elements

# 使用示例
elements = detect_elements("current_screen.png")
for elem in elements:
print(elem)

1.3.3 动作执行引擎(基于Appium + AI决策)

from appium import webdriver
import time

class AITestExecutor:
def __init__(self):
self.driver = None

def start_session(self):
caps = {
"platformName": "Android",
"deviceName": "emulator-5554",
"appPackage": "com.example.app",
"appActivity": ".MainActivity"
}
self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
time.sleep(3)

def find_element_by_image(self, target_img_path):
# 截图当前屏幕
self.driver.get_screenshot_as_file("current.png")
screen = cv2.imread("current.png")
template = cv2.imread(target_img_path, 0)
screen_gray = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)

res = cv2.matchTemplate(screen_gray, template, cv2.TM_CCOEFF_NORMED)
_, max_val, _, max_loc = cv2.minMaxLoc(res)

if max_val > 0.8:
h, w = template.shape
center_x = max_loc[0] + w // 2
center_y = max_loc[1] + h // 2
return center_x, center_y
return None

def execute_step(self, action, value=None):
if action == "click":
pos = self.find_element_by_image(f"images/{value}.png")
if pos:
self.driver.tap([pos], 100)
print(f"Clicked on {value}")
elif action == "input":
elem = self.driver.find_element_by_accessibility_id(value)
elem.send_keys("test_user")
print(f"Inputted into {value}")

def close(self):
self.driver.quit()

# 执行测试
executor = AITestExecutor()
executor.start_session()
executor.execute_step("click", "login_button")
executor.execute_step("input", "username_field")
executor.close()

二、智能缺陷检测

2.1 传统缺陷检测的局限

传统方式依赖日志监控、断言失败和人工巡检,存在:

  • 滞后性:问题发生后才被发现;
  • 误报率高:日志噪声干扰;
  • 难以定位根因:缺乏上下文关联。

AI可通过异常检测、日志聚类、图像比对等方式实现主动式缺陷识别。

2.2 智能缺陷检测系统架构(Mermaid)

graph LR
A[实时日志流] --> B(Log Parser)
B --> C[结构化日志]
C --> D[特征提取]
D --> E{异常检测模型}
E -->|异常| F[告警通知]
E -->|正常| G[存储归档]

H[UI截图序列] --> I(Image Diff Engine)
I --> J{像素差异 > 阈值?}
J -->|是| K[视觉异常标记]
J -->|否| L[无异常]

M[用户行为日志] --> N[路径分析模型]
N --> O{偏离正常路径?}
O -->|是| P[潜在缺陷预警]

F --> Q[缺陷知识库]
K --> Q
P --> Q
Q --> R[Root Cause Analysis]

说明:多源数据融合检测,提升缺陷识别准确率。

2.3 基于日志的异常检测(LSTM Autoencoder)

使用长短期记忆网络(LSTM)构建自编码器,对正常日志模式建模,检测异常。

import numpy as np
from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout
from sklearn.preprocessing import StandardScaler
import pandas as pd

# 模拟日志数据(时间序列向量)
data = pd.read_csv("logs_embedding.csv")  # 每行是日志的向量化表示
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)

# 构建LSTM自编码器
model = Sequential([
LSTM(64, activation='relu', input_shape=(10, scaled_data.shape[1]), return_sequences=True),
LSTM(32, activation='relu', return_sequences=False),
Dropout(0.2),
Dense(32, activation='relu'),
Dense(64, activation='relu'),
Dense(scaled_data.shape[1])
])

model.compile(optimizer='adam', loss='mse')

# 训练(仅用正常日志)
X_train = np.array([scaled_data[i:i+10] for i in range(len(scaled_data)-10)])
model.fit(X_train, X_train[:, -1, :], epochs=50, batch_size=32, validation_split=0.1)

# 检测异常
def detect_anomaly(log_seq, threshold=0.1):
seq = scaler.transform(log_seq).reshape(1, 10, -1)
reconstructed = model.predict(seq)
mse = np.mean((seq[0, -1, :] - reconstructed[0])**2)
return mse > threshold, mse

# 示例
test_seq = scaled_data[100:110]
is_anomalous, score = detect_anomaly(test_seq)
print(f"Anomalous: {is_anomalous}, MSE: {score:.4f}")

2.4 视觉缺陷检测(图像差异 + OCR语义校验)

import cv2
import numpy as np
from difflib import SequenceMatcher
import pytesseract

def image_diff_and_ocr_check(before_img, after_img, expected_text):
# 图像差异检测
img1 = cv2.imread(before_img, 0)
img2 = cv2.imread(after_img, 0)

diff = cv2.absdiff(img1, img2)
_, thresh = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)
non_zero_count = cv2.countNonZero(thresh)

if non_zero_count < 100:
print("No significant visual change.")
return False

# OCR提取文本
actual_text = pytesseract.image_to_string(after_img).strip()
similarity = SequenceMatcher(None, expected_text, actual_text).ratio()

if similarity < 0.8:
print(f"Text mismatch! Expected: '{expected_text}', Got: '{actual_text}'")
return True  # 存在缺陷

print("Visual and text check passed.")
return False

# 使用示例
has_defect = image_diff_and_ocr_check(
"home_v1.png", 
"home_v2.png", 
"Welcome to our app"
)

2.5 Prompt示例:用于缺陷分类与建议

你是一名资深QA工程师,请根据以下缺陷描述进行分类并提出修复建议:

【缺陷描述】
用户在提交订单后,页面跳转至空白页,控制台报错:Uncaught TypeError: Cannot read property 'id' of undefined at checkout.js:45

【分析要求】
1. 判断缺陷类型(前端/后端/网络/兼容性)
2. 推测可能原因
3. 提供3条修复建议

请以JSON格式输出:
{
"type": "",
"possible_causes": [],
"fix_suggestions": []
}

AI响应示例

{
"type": "前端",
"possible_causes": [
"订单数据未正确传递至前端",
"checkout.js中未对null/undefined进行判断",
"API返回结构变更导致字段缺失"
],
"fix_suggestions": [
"在访问对象属性前添加空值检查:if (order && order.id)",
"增加前端错误边界处理,显示友好提示",
"与后端确认API契约,确保返回字段一致性"
]
}

三、AI驱动的A/B测试优化

3.1 A/B测试的传统瓶颈

传统A/B测试面临:

  • 样本效率低:需大量用户才能得出结论;
  • 静态分组:无法动态调整流量;
  • 分析滞后:结果需手动统计;
  • 维度爆炸:多变量测试组合过多。

AI可通过贝叶斯优化、多臂老虎机(MAB)、因果推断提升测试效率与决策质量。

3.2 智能A/B测试流程图(Mermaid)

graph TB
A[定义目标指标] --> B[生成变体(AI文案/布局)]
B --> C[用户分组(MAB算法)]
C --> D[实时数据采集]
D --> E[贝叶斯更新后验分布]
E --> F{达到显著性?}
F -->|否| G[动态调整流量分配]
G --> C
F -->|是| H[确定最优变体]
H --> I[全量发布]
I --> J[持续监控]
J --> K{性能下降?}
K -->|是| B
K -->|否| J

说明:采用多臂老虎机实现探索-利用平衡,加速收敛。

3.3 多臂老虎机(Thompson Sampling)实现

import numpy as np
import random

class ThompsonSampling:
def __init__(self, n_variants):
self.n = n_variants
self.alpha = np.ones(n_variants)  # 成功次数(先验)
self.beta = np.ones(n_variants)  # 失败次数(先验)

def select_variant(self):
samples = [np.random.beta(self.alpha[i], self.beta[i]) for i in range(self.n)]
return np.argmax(samples)

def update(self, variant_id, reward):
if reward == 1:
self.alpha[variant_id] += 1
else:
self.beta[variant_id] += 1

# 模拟A/B测试
ts = ThompsonSampling(n_variants=3)
true_conversion_rates = [0.05, 0.08, 0.06]  # 真实转化率

for _ in range(10000):
variant = ts.select_variant()
# 模拟用户行为
reward = 1 if random.random() < true_conversion_rates[variant] else 0
ts.update(variant, reward)

print("最终参数估计:")
for i in range(3):
mean = ts.alpha[i] / (ts.alpha[i] + ts.beta[i])
print(f"Variant {i}: {mean:.3f} (真实: {true_conversion_rates[i]})")

输出示例

Variant 0: 0.051
Variant 1: 0.079  ← 最优
Variant 2: 0.060

3.4 AI生成测试变体(Prompt + GPT)

你是一名UI/UX设计师,请为电商App的首页生成3个不同的Banner文案变体,目标是提升点击率(CTR)。

要求:
- 变体A:强调价格优惠
- 变体B:突出限时紧迫感
- 变体C:情感共鸣型

输出格式:
{
"variants": [
{"id": "A", "text": "", "color_scheme": "", "call_to_action": ""},
{"id": "B", "text": "", "color_scheme": "", "call_to_action": ""},
{"id": "C", "text": "", "color_scheme": "", "call_to_action": ""}
]
}

AI响应示例

{
"variants": [
{
"id": "A",
"text": "全场低至3折起,省下一半钱!",
"color_scheme": "红色+黄色",
"call_to_action": "立即抢购"
},
{
"id": "B",
"text": "最后2小时!错过再等一年",
"color_scheme": "黑色+橙色",
"call_to_action": "马上查看"
},
{
"id": "C",
"text": "为爱的人挑选一份温暖礼物",
"color_scheme": "粉色+白色",
"call_to_action": "开始挑选"
}
]
}

3.5 贝叶斯A/B测试分析(Python)

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import beta

def bayesian_ab_test(clicks_A, views_A, clicks_B, views_B):
# 后验分布
a_A, b_A = 1 + clicks_A, 1 + views_A - clicks_A
a_B, b_B = 1 + clicks_B, 1 + views_B - clicks_B

# 采样比较
samples_A = beta.rvs(a_A, b_A, size=10000)
samples_B = beta.rvs(a_B, b_B, size=10000)

prob_B_better = np.mean(samples_B > samples_A)

print(f"P(Variant B > A) = {prob_B_better:.3f}")

# 绘制后验分布
plt.figure(figsize=(10, 6))
x = np.linspace(0, 0.15, 1000)
plt.plot(x, beta.pdf(x, a_A, b_A), label=f'Variant A (CTR ≈ {a_A/(a_A+b_A):.3f})')
plt.plot(x, beta.pdf(x, a_B, b_B), label=f'Variant B (CTR ≈ {a_B/(a_B+b_B):.3f})')
plt.xlabel('Conversion Rate')
plt.ylabel('Density')
plt.title('Bayesian Posterior Distributions')
plt.legend()
plt.grid(True, alpha=0.3)
plt.savefig("ab_bayesian_result.png")
plt.show()

# 示例数据
bayesian_ab_test(clicks_A=45, views_A=1000, clicks_B=62, views_B=1000)

注:实际运行将生成两条Beta分布曲线,直观展示B优于A的概率。


四、综合系统集成与可视化

4.1 AI测试平台仪表盘(示意图)

+-----------------------------------------------------------+
|                   AI Test Platform Dashboard              |
+---------------------+----------------------+--------------+
|  自动化测试进度     |  缺陷趋势分析        |  A/B测试状态   |
|  [█▒▒▒▒▒▒▒▒] 23%    |  ▲ 本周+15%          |  Variant B: 68% |
|  今日执行: 142      |  ● 严重: 3           |  Confidence: 92%|
|  通过率: 94.1%      |  ○ 一般: 12          |                |
+---------------------+----------------------+--------------+
|  最新缺陷(AI标记)                                          |
|  • [视觉] 登录页按钮错位 (v2.1.0)                            |
|  • [日志] 支付超时错误频发 (order-service)                   |
|  • [行为] 30%用户在结算页流失                               |
+-----------------------------------------------------------+
|  推荐行动                                                   |
|  ▶ 重新训练UI检测模型(准确率下降5%)                       |
|  ▶ 扩大A/B测试流量至Variant B                               |
+-----------------------------------------------------------+

4.2 数据流架构图(Mermaid)

graph LR
subgraph Data Sources
A[自动化测试日志]
B[生产环境监控]
C[用户行为埋点]
D[A/B测试平台]
end

    A --> E(Data Lake)
B --> E
C --> E
D --> E

    E --> F[Feature Store]
F --> G[AI模型训练]
G --> H[自动化测试引擎]
G --> I[缺陷预测模型]
G --> J[A/B优化策略]

    H --> K[Test Execution]
I --> L[实时告警]
J --> M[Traffic Routing]

    K --> A
L --> N[工单系统]
M --> D

五、总结与展望

AI测试正在重塑软件质量保障体系:

  • 自动化测试:从“脚本驱动”走向“语义理解+视觉识别”;
  • 缺陷检测:从“事后响应”转向“事前预警”;
  • A/B测试:从“静态实验”升级为“动态优化”。

未来方向包括:

  • LLM + 测试:大模型自动生成测试用例、分析日志;
  • 强化学习:自主探索应用路径,发现深层缺陷;
  • 数字孪生测试:在虚拟环境中模拟百万用户并发。

通过AI与测试工程的深度融合,企业将实现更高效、更智能、更可靠的质量保障闭环。

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

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

相关文章

[linux仓库]性能加速的隐形引擎:深度解析Linux文件IO中的缓冲区奥秘

&#x1f31f; 各位看官好&#xff0c;我是egoist2023&#xff01; &#x1f30d; Linux Linux is not Unix &#xff01; &#x1f680; 今天来学习C语言缓冲区和内核缓存区的区别以及缓存类型。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c…

一、计算机的数据存储

计算机的世界只有0和1。 1.1 进制 十进制整数->二进制整数&#xff1a;除2倒取余二进制->十进制&#xff1a;权值相加法 结论&#xff1a;1位8进制值 3位二进制值&#xff0c;1位十六进制值 4位二进制值 public class JinZhiDemo {public static void main(String[]…

SpringBoot集成XXL-JOB保姆教程

第一步&#xff1a; 下载xxl-job源码到本地&#xff0c;地址如下&#xff1a; xxl-job: 一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 第二步&#xff1a; 创建…

Debezium日常分享系列之:Debezium 3.2.2.Final发布

Debezium日常分享系列之&#xff1a;Debezium 3.2.2.Final发布Debezium CoreConnector启动时出现难以理解的错误临时阻塞快照失败可能导致数据丢失的问题修复Debezium for OracleDebezium CoreConnector 启动时出现难以理解的错误 我们解决了一个问题&#xff0c;即连接器会因…

Zoom AI 技术架构研究:联合式方法与多模态集成

一、研究背景与概述 在当今数字化转型加速的背景下,人工智能技术正深刻改变企业协作与沟通方式。作为全球领先的视频会议平台,Zoom 已从单纯的通信工具转型为全面的生产力平台,而其 AI 技术架构是这一转变的核心驱动力。本报告将深入分析 Zoom 的 AI 技术架构,特别是其创新…

排序-快速排序 O(n log n)

快排&#xff1a;1、设定一个中间值 q[ lr >>1 ] , 让左右区间来比较2、左边通过 i 依次比较&#xff0c;如果比这个中间值小&#xff0c;就继续 , 直到不符合3、右边通过 j-- 依次比较&#xff0c;如果比这个中间值大&#xff0c;就继续 &#xff0c;直到不符合4、两边…

【Proteus仿真】定时器控制系列仿真——LED小灯闪烁/流水灯/LED灯带控制/LED小灯实现二进制

目录 0案例视频效果展示 0.1例子1&#xff1a;基于AT89C51单片机的定时器控制小灯闪烁 0.2例子2&#xff1a;基于AT89C51单片机的定时器T0流水灯 0.3例子3&#xff1a;基于AT89C51单片机的定时器控制LED灯带 0.4例子4&#xff1a;基于AT89C51单片机的定时器控制LED闪烁 0…

进阶向:密码生成与管理工具

密码生成与管理工具&#xff1a;从零开始的完全指南在现代数字生活中&#xff0c;密码是保护个人信息和账户安全的第一道防线。随着网络服务的普及&#xff0c;每个人平均需要管理数十个不同账户的密码。一个强大且独特的密码通常应包含12个以上字符&#xff0c;混合大小写字母…

解决 Gitee 中 git push 因邮箱隐私设置导致的失败问题

解决 Gitee 中 git push 因邮箱隐私设置导致的失败问题 在使用 Git 向 Gitee 远程仓库推送代码时&#xff0c;可能会遇到因邮箱隐私设置引发的 git push 失败情况。最近我就碰到了&#xff0c;现在把问题现象、原因和解决方法分享出来。 一、错误现象 执行 git push -u origin …

Flutter的三棵树

“三棵树”是 Flutter 渲染和构建UI的核心机制&#xff0c;理解它们对于掌握 Flutter 至关重要。这三棵树分别是&#xff1a; Widget 树 Element 树 RenderObject 树 它们协同工作&#xff0c;以实现 Flutter 的高性能渲染和高效的响应式编程模型。 Flutter 是声明式的UI&…

同一台nginx中配置多个前端项目的三种方式

目录 第一种方式:配置多个二级域名 第二种方式:配置端口转发(不推荐) 第三种方式:同一个server中基于location配置(重点讲解) 第一种方式:配置多个二级域名 一个域名下面申请多个二级域名,每个二级域名配置一个vue前端项目,这个很好配置,在这里不再详细说明。 …

第二家公司虽然用PowerBI ,可能更适合用以前的QuickBI

第二家公司虽然用PowerBI &#xff0c;可能更适合用以前的QuickBI现在回想一下&#xff0c;第二家公司数据源是MySQL &#xff0c;常规报表是用excel报表&#xff0c;另外还做了一张能发布到web的看板供运营使用。基于基本情况&#xff0c;quickbi 的早期版本是合适的&#xff…

STM32 USBx Device HID standalone 移植示例 LAT1466

关键字&#xff1a;USBx&#xff0c; Device, HID&#xff0c;standalone 1.设计目的 目前 USBx Device standalone 的官方示例较少&#xff0c;不过使用 STM32CubeMX 可以快速地生成 USBx Device 相关类的示例工程&#xff0c;会很方便大家的开发。这里以 NUCLEO-H563 为例&…

python创建并写入excel文件

大家好&#xff0c;这里是七七&#xff0c;今天来跟大家分享一个python创建并写入一个excel文件的小例子&#xff0c;话不多说&#xff0c;开始介绍。首先我们来看一下这一小段代码。import openpyxl# 创建一个新的 Excel 工作簿workbook openpyxl.Workbook()# 获取当前活动的…

react native 出现 FATAL EXCEPTION: OkHttp Dispatcher

react native 出现 FATAL EXCEPTION: OkHttp Dispatcher 报错信息FATAL EXCEPTION: OkHttp DispatcherProcess: , PID: 8868java.lang.NoSuchMethodError: No virtual method toString(Z)Ljava/lang/String; in class Lokhttp3/Cookie; or its super classes (declaration of o…

sentinel实现控制台与nacos数据双向绑定

有两种方式可以实现&#xff1a;Springboot客户端做相应配置&#xff08;推荐&#xff09;修改sentinel-dashboard的源码一、Springboot客户端做相应配置&#xff08;推荐&#xff09;1、添加依赖<dependency><groupId>com.alibaba.csp</groupId><artifac…

Kubernetes (k8s)

Kubernetes (k8s) 以下是一份 ​Kubernetes (k8s) 基础使用教程&#xff0c;涵盖从环境搭建到核心操作的完整流程&#xff0c;附详细命令和示例&#xff1a; &#x1f680; ​一、环境准备&#xff08;3种方式&#xff09;​​ ​1. 本地开发环境&#xff08;推荐&#xff09;​…

三打ANSYS HFSS

2. 激励方式&#xff08;端口&#xff09;详细对比分析在HFSS中&#xff0c;“激励方式”和“端口”这两个词经常混用&#xff0c;但严格来说&#xff0c;“端口”是实现“激励”的一种最主要的方式。端口类型工作原理适用情况优点缺点波端口 (Wave Port)默认首选。计算端口的固…

3.python——数据类型转换

python的数据类型转换分为两种&#xff1a; 隐式转换&#xff1a;自动完成 显式转换&#xff1a;用类型函数转换 隐式转换 # 自动转为浮点数 num_int 123 num_flo 1.23num_new num_int num_flo显式转换 整型 x int(1) # x 输出结果为 1 y int(2.8) # y 输出结果为 2 z …

迅为RK3568开发板OpenHarmonyv3.2-Beta4版本测试-命令终端

将串口连接到开发板的调试串口&#xff0c;进入 OpenHarmony 系统后&#xff0c;会自动进入 OpenHarmony终端&#xff0c;如下图所示&#xff1a;