jmeter结合autoit操作windows程序
需求:
模拟操作下图软件的控件,如拨号和挂机。

1. 下载安装好autoit后,打开finder tool,使用查找工具定位到要模拟操作的控件上,如图:

2.在finder tool中的control选项卡,可以看到该控件的信息。其它控件做类似操作

3.打开autoit的script editor,编写模拟操作控件的脚本
Dim $dialogTitle = "MicroSIP" WinActivate($dialogTitle)
WinWaitActive($dialogTitle) ;1
ControlFocus("MicroSIP", "","[Class:Button;Instance:7]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:7]") ;0
ControlFocus("MicroSIP", "","[Class:Button;Instance:16]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:16]")
ControlFocus("MicroSIP", "","[Class:Button;Instance:16]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:16]")
;8
ControlFocus("MicroSIP", "","[Class:Button;Instance:14]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:14]")
;6
ControlFocus("MicroSIP", "","[Class:Button;Instance:12]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:12]")
;2
ControlFocus("MicroSIP", "","[Class:Button;Instance:8]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:8]")
ControlFocus("MicroSIP", "","[Class:Button;Instance:8]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:8]") ControlFocus("MicroSIP", "","[Class:Button;Instance:1]")
Sleep(1000)
ControlClick("MicroSIP", "","[Class:Button;Instance:1]")
4.保存为au3文件,点击scrit的tools->go。测试运行,通过后,打开autoit的script to exe工具,将步骤3的au3文件转为换exe文件

5.打开jmeter,一次添加计划、线程组->BeanShell Sampler,在beanshell中添加调用exe的java代码
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
p = rn.exec("\"C:/callout1008622.exe\"");
} catch (Exception e) {
System.out.println("Error exec!");
}
6.保存后,启动jmeter,运行通过
jmeter结合autoit操作windows程序的更多相关文章
- AutoIt操作Windows GUI实现文件上传
AutoIt 一个使用类似BASIC脚本语言的免费软件,用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 官方网站: htt ...
- 工作自动化,替代手工操作,使用python操作MFC、windows程序
目录 背景--为什么要自动化操作? 方法--怎么实现自动化操作? 查找窗体 发送消息 获取文本 总结 背景--为什么要自动化操作? 工作中总是遇到反复重复性的工作?怎么用程序把它变成自动化操作?将程序 ...
- 【C语言/C++编程学习笔记】你的第一个Windows程序!高级操作~
什么是windows编程?了解到Windows API 编程.Windows编程.Windows SDK 编程是一个概念.今天我们运用C语言来实现你的第一个真正的Windows程序. windows. ...
- Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html
一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...
- 深入浅出话VC++(1)——Windows程序内部运行机制
一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...
- 窗体==>>初始Windows程序
初识Windows程序 01.创建Windows程序(VS) 01.打开Visual Studio开发工具 02.选择"文件"→"新建"→"项目&qu ...
- windows程序防狼术入门
当初由于一些原因以及兴趣,学习了一段时间软件逆向,对于软件加密解密有了点粗略的了解.而后看到某些同学辛辛苦苦的搞出个软件,自己费心费力去加密,但搞出来后往往能被秒破,实不忍心.今天大概总结下一些基本的 ...
- Windows程序----初识Windows程序
先来看一些励志名言来激励一下自己吧! 励志名言:每一发奋发奋的背后,必有加倍的赏赐 1.有无目标是成功者与平庸者的根本差别. 2.成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成. 3.当 ...
- 关于windows程序的学习及思考系列之一
1.窗口类的注册 a.windows程序中最简单的就是创建一个简单的窗口,而窗口程序的创建是基于窗口类的,窗口类决定了处理窗口消息的过程函数. b.一个窗口类可以用于创建多个窗口,也就是说窗口是窗口类 ...
随机推荐
- 【转】Android Activity原理以及其子类描述,androidactivity
Android Activity原理以及其子类描述,androidactivity 简介 Activity是Android应用程序组件,实现一个用户交互窗口,我们可以实现布局填充屏幕,也可以实 ...
- 【洛谷P1107】 [BJWC2008]雷涛的小猫
雷涛的小猫 题目链接 n^2DP比较好想, f[i][j]表示第i棵树高度为j的最大收益 直接从上到下转移即可,每次记录下max f[1~n][j] 用于下面的转移 f[i][j]=max(f[i][ ...
- 深度优先搜索(深搜)——Deep First Search【例题:迷宫】
深度优先搜索 基本思想:先选择一种可能情况向前探索,在探索过程中,一点那发现原来的选择是错误的,就退回一步重新选择,继续向前探索,(回溯)反复进行. [例题]迷宫问题 ...
- Android学习笔记_32_通过WebView实现JS代码与Java代码互相通信
webview两种实现方法,覆盖onKeyDown()方法 缓存 WebSettings应用注意的几个问题 1.要实现JS代码与Java代码互相通信,需要通过Android的WebView控件,在视图 ...
- 【题解】洛谷P1072 Hankson的趣味题 (gcd和lcm的应用)
洛谷P1072:https://www.luogu.org/problemnew/show/P1072 思路 gcd(x,a0)=a1 lcm(x,b0)=b1→b0*x=b1*gcd(x,b0) ( ...
- php如何实现登陆后返回原页面
访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面项目需求 访问网站页面时,有的页面需要授权才能访问,这时候就会要求 ...
- SQL Server中的三种Join方式
1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备.这两篇博客使用了相同的实验数据. 2.SQ ...
- boost::shared_ptr文档翻译
shared_ptr: 共享所有权 原文链接 描述 模版类 shared_ptr 存储动态构造对象的指针,通常是由C++ new语句完成的.这个对象指针在最后一个持有指针所有权的shared_ptr被 ...
- 【TOJ 3692】紧急援救
#include<iostream> #include<algorithm> #include<queue> using namespace std; #defin ...
- MySQL实现序列自增
#创建序列表 DROP TABLE IF EXISTS `sequence`; CREATE TABLE `sequence` ( `name` ) NOT NULL COMMENT '序列名称', ...