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、其他要注意的方面

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

相关推荐
2025年一定要上岸18 小时前
【Django】-10- 单元测试和集成测试(下)
数据库·后端·python·单元测试·django·集成测试
2025年一定要上岸2 天前
【Django】-9- 单元测试和集成测试(上)
单元测试·django·集成测试
万能小锦鲤2 天前
《软件测试与质量控制》实验报告二 单元测试
junit·eclipse·单元测试·测试用例·实验报告·软件测试与质量控制
拾光拾趣录4 天前
前端的单元测试
前端·单元测试
超浪的晨5 天前
Maven 与单元测试:JavaWeb 项目质量保障的基石
java·开发语言·学习·单元测试·maven·个人开发
秃了也弱了。5 天前
Mockito:Java单元测试Mock框架
java·开发语言·单元测试
蝸牛ちゃん5 天前
面向对象系统的单元测试层次
系统架构·单元测试·软考高级
lifewange8 天前
接口测试案例从哪些维度去设计
单元测试·ab测试
测试19989 天前
cmake应用:集成gtest进行单元测试
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
双力臂4049 天前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试