Monkey测试(压力测试)
显示原文
A simple monkey test. Use random input to stress test the application.
这里提供一个简单的 monkey 测试接口,其使用随机输入来对应用程序进行压力测试。
Usage(用法)
显示原文
Enable LV_USE_MONKEY
in lv_conf.h
.
First configure monkey, use lv_monkey_config_t
to define the
configuration structure, set the type
(check input devices for the supported types), and then set the
range of period_range
and input_range
, the monkey will output
random operations at random times within this range. Call
lv_monkey_create()
to create monkey. Finally call
lv_monkey_set_enable(monkey, true) to enable monkey.
If you want to pause the monkey, call lv_monkey_set_enable(monkey, false). To delete the monkey, call lv_monkey_delete(monkey).
Note that input_range
has different meanings in different type
:
LV_INDEV_TYPE_POINTER
: No effect, click randomly within the pixels of the screen resolution.LV_INDEV_TYPE_ENCODER
: The minimum and maximum values ofenc_diff
.LV_INDEV_TYPE_BUTTON
: The minimum and maximum values ofbtn_id
. Uselv_monkey_get_indev()
to get the input device, and uselv_indev_set_button_points()
to map the key ID to the coordinates.LV_INDEV_TYPE_KEYPAD
: No effect, Send random Keys(按键).
请在 lv_conf.h
中启用 LV_USE_MONKEY
。
首先配置monkey,使用 lv_monkey_config_t
定义配置结构,设置 type
(查看 `input devices</overview/indev>`__ 以获取支持的类型),然后设置 period_range
和 input_range
的范围,monkey会在此范围内随机时间输出随机操作。调用 lv_monkey_create()
创建monkey。最后调用 lv_monkey_set_enable(monkey, true) 启用monkey。
如果要暂停monkey,请调用 lv_monkey_set_enable(monkey, false) 。要删除monkey,请调用 lv_monkey_delete(monkey) 。
请注意, input_range
在不同的 type
中有不同的含义:
LV_INDEV_TYPE_POINTER
:无效果,在屏幕分辨率的像素内随机点击。LV_INDEV_TYPE_ENCODER
:enc_diff
的最小值和最大值。LV_INDEV_TYPE_BUTTON
:btn_id
的最小值和最大值。使用lv_monkey_get_indev()
获取输入设备,并使用lv_indev_set_button_points()
将按键ID映射到坐标上。LV_INDEV_TYPE_KEYPAD
:无效果,发送随机的 Keys(按键) 。
Example
Touchpad monkey example
C code
View on GitHub#include "../../lv_examples.h"
#if LV_USE_MONKEY && LV_BUILD_EXAMPLES
void lv_example_monkey_1(void)
{
/*Create pointer monkey test*/
lv_monkey_config_t config;
lv_monkey_config_init(&config);
config.type = LV_INDEV_TYPE_POINTER;
config.period_range.min = 10;
config.period_range.max = 100;
lv_monkey_t * monkey = lv_monkey_create(&config);
/*Start monkey test*/
lv_monkey_set_enable(monkey, true);
}
#endif
Encoder monkey example
C code
View on GitHub#include "../../lv_examples.h"
#if LV_USE_MONKEY && LV_BUILD_EXAMPLES
void lv_example_monkey_2(void)
{
/*Create encoder monkey test*/
lv_monkey_config_t config;
lv_monkey_config_init(&config);
config.type = LV_INDEV_TYPE_ENCODER;
config.period_range.min = 50;
config.period_range.max = 500;
config.input_range.min = -5;
config.input_range.max = 5;
lv_monkey_t * monkey = lv_monkey_create(&config);
/*Set the default group*/
lv_group_t * group = lv_group_create();
lv_indev_set_group(lv_monkey_get_indev(monkey), group);
lv_group_set_default(group);
/*Start monkey test*/
lv_monkey_set_enable(monkey, true);
}
#endif