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

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

相关推荐
安冬的码畜日常3 小时前
【JUnit实战3_30】第十八章:REST API 接口测试(下)—— REST API 接口的 MockMvc + JUnit 5 测试实战
测试工具·junit·单元测试·restful·rest api·junit5
慧都小项7 小时前
Parasoft C/C++test如何使用桩函数替代MFC窗口类顺利执行单元测试
单元测试·parasoft·桩函数·mfc窗口类
慧都小项16 小时前
Parasoft C/C++test中Trace32调试器的配置与单元测试执行
单元测试·parasoft·trace32调试器
JosieBook1 天前
【SpringBoot】31 核心功能 - 单元测试 - JUnit5 单元测试中的断言机制——验证你的代码是否按预期执行了
spring boot·单元测试·log4j
l1t1 天前
编译SQLite 3.51源码并体验新功能
单元测试·sqlite·duckdb
川石课堂软件测试2 天前
Python | 高阶函数基本应用及Decorator装饰器
android·开发语言·数据库·python·功能测试·mysql·单元测试
Filotimo_2 天前
springboot的单元测试功能有什么用
spring boot·单元测试·log4j
不光头强2 天前
Spring整合单元测试
spring·单元测试·log4j
慧都小项2 天前
Parasoft C/C++test如何在CCS3环境下进行F2812项目的单元测试
单元测试·parasoft·ccs3
学IT的周星星2 天前
Spring 框架整合 JUnit 单元测试
java·spring·junit·单元测试