自动化测试程序之一自定义键盘的模拟测试程序(C语言)

本文介绍了一种用于自动化测试QT应用程序的C语言程序,该程序模拟自定义键盘输入,减轻测试人员负担。测试程序依据脚本文件构造按键动作链表,执行包括按键按下、抬起等事件,并支持循环操作。通过这种方式,可以进行大量重复的按键测试,以检查系统稳定性和资源使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、测试程序编写说明
我们做的终端设备上运行的是QT应用程序,使用自定义的键盘接口。经过测试人员长时间的人机交互测试,来确认系统的功能是否满足需求。现在需要编写一个自动化的测试程序,能够按照预设的脚本执行,比如某个按键需要连续执行10000次,或是通过连续几个按键动作执行特定的业务流程10W次。通过这样的自动测试,可以减轻测试人员的负担,还可以查看触发N次按键后,画面执行N次后的系统的稳定性,如内存使用率,cup使用率等等。

设备有4*4的键盘,包括0-9,C(Call),A,U(up),D(Down),F1,F2功能键,屏幕的不同画面上根据前述按键的动作执行相应的响应动作。

二、测试程序的结构分析

根据上述的简单要求,先分析测试程序的结构如下:

读入的脚本文件可以是TXT文件大概结构如下:

   --------Script_Sample.txt------------
3
A 5
R 3 2
U 5
C 6
A 3

其中的第一行表示以下执行的5个动作,分别是按A 、U、C、A键并且每次按键后休息相应的秒数(即后面的数值),其中的R 5 1 行表示以下1行重复再重复5次。脚本文件中R可不写;若不写,表示依次顺序执行,没有循环操作。

测试程序根据这个脚本构造一个链表,链表中的节点表示相应的操作,操作序列中循环动作再列表中构成局部的单向循环列表。

三、测试程序实现主要逻辑
1、定义链表


typedef struct List  
{  
    char operation;
    int  seconds;
    FLAG c_flag;
    int  i_repeatCnt;
    int  i_repeatLines;
    struct List *nextGp; //指针域  
    struct List *nextMemeber; //指针域  
}List;  
List *oprtData_Set;

2、上报输入事件


int reportkey(int fd, uint16_t type, uint16_t keycode, int32_t value)  
{  
    struct input_event event;  

    event.type = type;  
    event.code = keycode;  
    event.value = value;  

    gettimeofday(&event.time, 0);  

    if (write(fd, &ev
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值