当前位置: 首页 > 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.hskmm.com/?act=detail&tid=16166

相关文章:

  • 解题报告-字符串(str.*)
  • Linux 系统中的 /dev/disk/by-id/目录作用详解
  • glTF/glb:您需要知道的一切,怎么免费获取下载
  • keepalived服务器
  • P8818 [CSP-S 2022] 策略游戏
  • FortiGate连接中国联通SDWAN
  • 第五章 运算符、表达式和语句
  • 学习问题日记-2
  • 封神台复现
  • 李之一的Java第一作
  • 2025.9.24 闲话:Lucas 定理究极证明
  • Are English people good or bad
  • 9
  • Lampiao靶场渗透wp-脏牛提权
  • 画矩形
  • NOIP 模拟赛八
  • 第三篇
  • 基于cloacked-pixel隐写工具爆破项目
  • 随便写的
  • Bcliux-docker-nacos2.2.0升级至2.2.3版本
  • 社交网络架构。京东场景题:亿级用户100Wqps 社交关系如何设计?如何查看我的关注,关注我的?
  • go 面试题
  • 事件和图形界面(暂未完成)
  • 什么是sql 慢日志。哈罗面试:没开sql慢日志,怎么发现慢 sql?
  • Spring连环炮。哈罗面试:Spring Bean生命周期,Spring怎么创建Bean的,BFPP和BPP的x别
  • redis 大 key 优化。哈罗面试:redis 有个大 key需要在线优化, 不能影响现有业务,请求不能大量到库,怎么优化?
  • ACL高可用架构。希音面试:第三方挂了,我们总在背锅。来一 靠谱的 高可用方案,让 外部依赖 稳如泰山
  • 软工9.24
  • 2025CSP-S模拟赛51
  • 2025年9月24日 - 20243867孙堃2405