小工具鼠标点击录制回放

本文章转载于搜狗测试

平时的测试工作中,小伙伴们有时会遇到重复做一些操作的场景,比如反复点击某个按钮,验证被测程序不会异常;或者反复最大化最小化被测程序,看看有没有显示异常…

这样的操作往往都比较简单,但是重复操作既浪费时间又耗费人力,怎么办呢?

使用自动化工具!

但是市面上的自动化工具体积往往都非常庞大,而且必须编写相应的脚本来做,面对以上简单的自动化需求来说,有点“拿着大炮打蚊子”了。

本次分享,小编将介绍搜狗同学自己做的一款简单的鼠标录制回放工具。

PS:感兴趣的各位读者也可以去Git上下载源码进行修改。

程序下载地址:

http://url.cn/XTXmSC

源码下载地址:

https://github.com/sogou/Test-ClickPrograme.git

源码解读:

本次小编介绍的工具中有两个关键函数,一个是录制函数;一个是回放函数。

录制函数:(通过鼠标位置进行相应坐标点转换,同时加入动作队列)

intCClickProgrameDlg::RecordAction()

{

if(m_iRecordState== 0)

{//起始位置

m_iRecordState= 1;

CPointCurPoint;

GetCursorPos( &CurPoint);

//ScreenToClient( &CurPoint );

m_tagEventRecord.m_tagMouseEvent.m_StartPoint=CurPoint;

//m_hCurs = LoadCursor(NULL, IDC_CROSS ); // Create a standard hourglass cursor.

//SetCursor(m_hCurs);

}

else

{//终止位置

m_iRecordState= 0;

CPointCurPoint;

GetCursorPos( &CurPoint);

//ScreenToClient( &CurPoint );

m_tagEventRecord.m_tagMouseEvent.m_EndPoint=CurPoint;

tagActionEvent*pNewEvent;

pNewEvent=newtagActionEvent;

pNewEvent->m_iEventType=ACTIONTYPE_MOUSE;//_T("鼠标动作");

pNewEvent->m_tagMouseEvent.m_StartPoint=m_tagEventRecord.m_tagMouseEvent.m_StartPoint;

pNewEvent->m_tagMouseEvent.m_EndPoint = m_tagEventRecord.m_tagMouseEvent.m_EndPoint;

pNewEvent->m_tagMouseEvent.m_iActionType = MOUSE_RIGHT_MOVE;

pNewEvent->m_iSleepTime= DefaultSleepTime;

pNewEvent->m_iLoopTime= DefaultLoopTime;

InsertAction( pNewEvent);

//DestroyCursor( m_hCurs );

}

return1;

}

回放函数:(将队列中的动作拿出来执行鼠标点击操作)

intCClickProgrameDlg::SingleClick(tagActionEvent*pNewEvent)

{

if(pNewEvent==NULL)

{

return0;

}

for(inti= 0 ;im_iLoopTime;i++ )

{

SetCursorPos(pNewEvent->m_tagMouseEvent.m_StartPoint.x,pNewEvent->m_tagMouseEvent.m_StartPoint.y);

if(pNewEvent->m_tagMouseEvent.m_iActionType&MOUSE_MASK_LEFT)

{//左键

mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP, 0 , 0 , 0 , 0 );

}

else

{

mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP, 0 , 0 , 0 , 0 );

}

Sleep(pNewEvent->m_iSleepTime);

PeepMessage();

if(m_eState!=Run)

{

break;

}

}

return1;

}

工具使用方法:

示例:小编接到一个测试任务:重现搜狗浏览器反复切换标签页假死的问题,为了节省人力,小编进行了如下工作:

1.在需要增加点击的地方按下shift + A。依次类推,添加多个点击点。

小工具鼠标点击录制回放_第1张图片
小工具鼠标点击录制回放_第2张图片

2.在程序界面上配置要点击的次数、间隔时间和循环次数。

小工具鼠标点击录制回放_第3张图片
小工具鼠标点击录制回放_第4张图片

3.按下shift+R运行点击脚本。

4.如果希望立即停止已配置的点击工作,可以按下shift+S。

具体实现的效果:

你可能感兴趣的:(小工具鼠标点击录制回放)