当前位置: 首页 > news >正文

自动化测试脚本

$language = "python"

$interface = "1.0"

import sys
reload(sys)
sys.setdefaultencoding('utf-8') # 设置默认编码为UTF-8

import re # 必须导入正则模块
global left
global right
global complete
clkfrequency = 0 # 初始化全局变量
left = "" # 新增全局变量初始化
right = "" # 新增全局变量初始化
commands = [
"ddr_g12_offset_data 1 0x40 0 0 1 16",
"ddr_g12_offset_data 2 0x0 0 0 1 16",
"ddr_g12_offset_data 3 0x0 0 0 1 16",
"ddr_g12_offset_data 101 0x40 0 0 1 16",
"ddr_g12_offset_data 102 0x0 0 0 1 16",
"ddr_g12_offset_data 103 0x0 0 0 1 16"
]# 左移指令
commands1 = [
"ddr_g12_offset_data 1 0x40 0 0 2 16",
"ddr_g12_offset_data 2 0x0 0 0 2 16",
"ddr_g12_offset_data 3 0x0 0 0 2 16",
"ddr_g12_offset_data 101 0x40 0 0 2 16",
"ddr_g12_offset_data 102 0x0 0 0 2 16",
"ddr_g12_offset_data 103 0x0 0 0 2 16"
]# 右移指令
def switch(choice):
global clkfrequency
global left
global right
while True:
crt.Screen.Send('reboot '+'\r')
if crt.Screen.WaitForString("Set ddr clk to", 8):
break
while True:
crt.Screen.Send(chr(3))
if crt.Screen.WaitForString("", 1):
break
if choice == 1:
for cmd in commands:
crt.Screen.Send(cmd + "\r")
if not crt.Screen.WaitForString("# ", 4): # 超时 3 秒
break
crt.Sleep(1000) # 可选:短延时
crt.Screen.Send('run bootcmd '+'\r')
if crt.Screen.WaitForString("!=bootcmd", 1):
crt.Sleep(1000)
else:
while True:
crt.Screen.Send('setprop debug.temp.superroot 89243347'+'\r')
crt.Screen.Send('imbug 1379'+'\r')
crt.Screen.Send('echo 0 > /proc/sys/kernel/printk'+'\r')
crt.Screen.Send('getprop sys.boot_completed;output=$(getprop sys.boot_completed);echo "zhuangtai["$output"]"'+'\r')
if crt.Screen.WaitForString("zhuangtai[1]", 3):
crt.Screen.Send('/data/amlogic_ddr_stressapptest -s 36000 -i 2 -m 2 -M 300 -W '
'--pause_delay 10 --pause_duration 1 --max_errors 3 --printsec 5'+'\r')# 左移指令
if crt.Screen.WaitForString("Status: PASS"):
left="PASS"
break
else:
if crt.Screen.WaitForString("Status: FAIL"):
left="FAIL"
break
elif choice == 2:
for cmd in commands1:
crt.Screen.Send(cmd + "\r")
if not crt.Screen.WaitForString("# ", 4): # 超时 3 秒
break
crt.Sleep(1000) # 可选:短延时
crt.Screen.Send('run bootcmd '+'\r')
if crt.Screen.WaitForString("!=bootcmd", 1):
crt.Sleep(1000)
else:
while True:
crt.Screen.Send('setprop debug.temp.superroot 89243347'+'\r')
crt.Screen.Send('imbug 1379'+'\r')
crt.Screen.Send('echo 0 > /proc/sys/kernel/printk'+'\r')
crt.Screen.Send('getprop sys.boot_completed;output=$(getprop sys.boot_completed);echo "zhuangtai["$output"]"'+'\r')
if crt.Screen.WaitForString("zhuangtai[1]", 3):
crt.Screen.Send('/data/amlogic_ddr_stressapptest -s 36000 -i 2 -m 2 -M 300 -W '
'--pause_delay 10 --pause_duration 1 --max_errors 3 --printsec 5'+'\r')# 左移指令
if crt.Screen.WaitForString("Status: PASS"):
right="PASS"
break
else:
if crt.Screen.WaitForString("Status: FAIL"):
right="FAIL"
break
elif choice == 3:
crt.Screen.Send('ddr_test_cmd 0x37;g12_d2pll 1176 0x31 792 1800 0 0 1'+'\r')# 极限频率
elif choice == 4:
crt.Screen.Send('ddr_test_cmd 0x37;g12_d2pll 1176 0x11 0x7 0 0 0'+'\r')# windows

禁用回显提升速度(适用于已知稳定环境)

crt.Screen.Synchronous = True

设置屏幕缓存模式

crt.Screen.IgnoreEscape = True
switch(1)
switch(2)
switch(3)
switch(4)
crt.Sleep(10000)
if crt.Screen.WaitForString("Hello, we are", 3600):
current_session = crt.GetScriptTab()
currentname=crt.GetScriptTab().Caption
crt.Sleep(360000)
crt.Dialog.MessageBox(currentname+"脚本完成 左移:"+left+" 右移:"+right+" 极限频率:完成 windows:完成")
current_session.Session.Disconnect()

http://www.rkmt.cn/news/11137.html

相关文章:

  • WPF Datagrid loaded 79M items in mvvm , Microsoft.Extensions.DependencyInjection
  • 外部 Tomcat 部署详细 - 实践
  • 20231326《密码系统设计》第三周预习报告
  • FortiGate连接中国联通SDWAN
  • 【Golang】素材设计模式
  • 2025.9.24 闲话:Lucas 定理究极证明
  • 画矩形
  • NOIP 模拟赛八
  • 随便写的
  • Bcliux-docker-nacos2.2.0升级至2.2.3版本
  • 事件和图形界面(暂未完成)
  • Spring连环炮。哈罗面试:Spring Bean生命周期,Spring怎么创建Bean的,BFPP和BPP的x别
  • 软工9.24
  • 无法安装 WebView2! 没有它,此应用就无法运行(解决方式附安装包)
  • 2025CSP-S模拟赛51
  • 2025年9月24日 - 20243867孙堃2405
  • 分库分表后如何高效处理分页
  • 详细介绍:【Selenium】UI自动化测试框架设计:从项目结构到Base-Page层的最佳实践
  • 架构图设计还得是华为 - 智慧园区
  • 解决zsh: corrupt history file /home/sgud4h5gh/.zsh_history的办法
  • 对象初始化器的使用方法
  • 我的学习记录之自我介绍、思维导图和监督措施
  • Nuget安装以及西门子PLC通信
  • 每日反思(2025_09_24)
  • 安装Flask库
  • 日总结 7
  • leetcode(填充每个节点的下一个右侧节点指针 II) - 详解
  • 知识学报:位运算(1)
  • ThinkPHP在启用nginx反向代理后如何获取真实的Ip地址
  • 【macOS】垃圾箱中文档无法清理的“含特殊字符文件名”的技巧