LVGL应用和部署(用lua做测试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

嵌入式产品做好了,下面就是测试和量产了。以按键+屏幕的开发模式为例,如果仅仅是简单的功能测试,那还比较好解决,只需要安排专门的测试人员,按照使用手册去做就可以了。但是如果是复杂测试,特别是压力测试,这个时候再靠人去测试,其实是不太现实的。所以,我们得依靠方法论、依靠工具去完成更复杂的测试,这样才能发现更深层次的问题。

1、压力测试需要工具

简单的测试、日常的测试,测试人员是可以自己搞定的。但是一旦面临复杂的测试,特别是压力测试,人其实是搞不定的。一方面这种测试枯燥乏味,另外一方面人需要休息,是没有办法做到几千、上万次的反复测试。

2、用脚本来模拟人的操作

前面我们说过,对于按键的输入,尽量归集到一个地方,集中送给状态机。等到业务处理好之后,再完成各个ui的更新。这里面,其实按键的输入,只是整个系统的一个环节。这个输入,是真的按键输入,还是仿真输入,其实一点都不重要。只要有这个输入即可。

所以,一种比较简单的办法就是通过编写脚本,来实现按键的输入。这个脚本理论上不仅仅是配置,最好还能编程。

3、引入lua

和python相比较,lua是一个比较轻的脚本语言。使用lua,有很多好处。一方面是它集成比较简单,可以比较容易地集成到我们已有的项目当中。对于脚本当中需要的函数,也可以通过c语言快速地实现,比如像这样,

复制代码
	lua_register(L, "press_mode",    (lua_CFunction)&press_mode_Function);
	lua_register(L, "release_mode",  (lua_CFunction)&release_mode_function);

对应的实现就是这样的,

复制代码
static int press_mode_function() // press_mode
{
	::receive_key_event(KEY_MODEONE, KEY_DOWN_EVENT);
	return 0;
}

static int release_mode_function() // release mode
{
	::receive_key_event(KEY_MODEONE, KEY_UP_EVENT);
	return 0;
}

这样在脚本里面直接调用函数,就可以实现和真实按键一样的效果。另外一方面,lua脚本语法简单,写起来很容易,哪怕是没有学过的人,只要通过几个demo,也可以短时间之内快速上手,类似于这样,

复制代码
--for linux, cygwin or mingw
function sleep(n)
  os.execute("sleep " .. tonumber(n))
end

--sleep for a while
sleep(10)

i = 1
while i < 50 do

	press_mode() --press mode key
	sleep(0.5)
	release_mode()

    i+=1
	sleep(3)
end

4、其他要注意的方面

一般测试人员要求都不会太高,所以测试的时候,尽量把重复、单调的工作,用工具来实现。这样不仅可以减轻测试的负担,也可以促使测试人员把精力转到测试用例的设计上面来。并且越到后期,简单的测试越不能发现问题,这个时候只能靠脚本、靠方法论,才能让产品越可靠,这靠人本身是没有办法做到的。

相关推荐
牛油果子哥q9 小时前
C++大型项目工程精讲:CMake完整实战、静态库&动态库、模块化拆分、单元测试、gdb调试、性能工具、工程踩坑全解
开发语言·c++·单元测试
leoZ2311 天前
AI+前端提效-09 AI赋能前端测试:单元测试、E2E测试自动生成,提升覆盖率
前端·人工智能·opencv·目标检测·数据挖掘·单元测试·语音识别
边吃番茄边敲代码5 天前
从本地工具到 MCP:给 Agent 接入独立工具服务,并补齐自动化测试
人工智能·python·功能测试·ai·单元测试·pytest
qq_452396235 天前
第十三篇:《测试策略:单元测试、组件测试、E2E 测试的落地实践》
单元测试
ly76897 天前
前端测试完整指南:从单元测试、组件测试到端到端测试与 CI/CD
前端·ci/cd·单元测试
咖啡星人k7 天前
2026 AI 自动化测试:让 AI 帮你写用例、跑测试、修 Bug(MonkeyCode 云端实战)
人工智能·功能测试·单元测试·测试用例·bug·集成测试
花椒技术7 天前
不是跑通一次 Demo:花椒 QA 怎样把真机 UI 自动化做成回归流程
ios·单元测试·测试
边吃番茄边敲代码7 天前
企业智能助手Agent 安全测试,包含Prompt Injection 和越权工具调用
人工智能·python·功能测试·ai·单元测试·prompt·模块测试
Lost of 程序猿8 天前
ASP.NET Core 测试实战:从单元测试到集成测试的全链路质量保障
单元测试·asp.net·集成测试