我们常常会使用sys_execute函数执行一些外部的程序或者命令来做一些事情,但是由于sys_execute是一个同步的函数,它会等待执行的命令完成后才会返回.在大多数情况下,这个函数足够用了. 但是在一些特殊的情况下,测试工程师可能期望在执行某个命令的过程中检查软件的状态,以便判断软件是否工作正常.这种情况下,我们就需要一个异步的sys_execute函数.不幸的是,SilkTest并没有提供这样的函数,不过我们有一个简单的办法绕过它,那就是在执行的命令行时使用start. 示例代码看上去像…
在地球尚未毁灭的某天,手动测试的同事找到你所在的自动组,问是否可以帮助他们自动化一个需要连续添加100个条目的测试用例,因为他们觉得这是一个噩梦.你口头上说要先烟酒烟酒才能知道,但是内里早就满心欢喜:这算个啥,难不倒咱,咱有如此powerful的SilkTest,咱自动化组表现的时候到了. 你蹭蹭地打开电脑,新建脚本,准备开始抓取…什么?大部分控件是特殊技术实现的,silktest统统无法识别.什么?你忘记了如何点击右键菜单并且选择菜单上的选项,需要花时间阅读帮助文档和google.什么?时间紧…
SilkTest可以通过调用Windows API来向控件发送消息,从而进行特定的操作.下面这段code使用PostMessage来向计算器上的清除键发送WM_LBUTTONDOWN和WM_LBUTTONUP两个消息,从而模拟PressMouse和ReleaseMouse的操作. [ ] use "C:/TA/SilkTest/mswfun32.inc" [ ] use "C:/TA/SilkTest/msw32.inc" [ ] use "C:/TA/S…
看SilkTest代码的时候不小心看到winclass.inc里面的一些类申明使用的是motif tag,例如: [-] winclass MessageBoxClass : DialogBox [ ] setting DontInheritClassTag = TRUE [+] PushButton OK [ ] tag "OK" [+] PushButton Cancel [ ] tag "Cancel" [+] PushButton Yes [ ] tag &…
SilkTest 提供了一个bitmap的工具,它可以帮助我们捕捉,比较bitmap文件.该bitmap工具的位置是~/SilkTest/bitview.exe 运行该工具后,你会发现它提供了捕捉控件,矩形和桌面的功能,用户可以使用它方便地捕捉指定对象和区域bitmap,再也不用受画图板的限制了.你可以在capture菜单下找到相应的菜单项,随便用用就知道是怎么回事了. 除此以外,你还可以通过file菜单先后打开两幅bitmap图片,然后通过Difference -> Show菜单来比较他们的区…
RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步http://www.cnblogs.com/lianzhilei/p/5977545.html(最下边) 本节涉及最多的还是rabbitmq通信原理知识,要求安装rabbitmq服务 程序用广播topic模式做更好 程序目录结构: 程序简介: # 异步rpc程序 # 博客地址 [第11天博客地址](…
Saltstack异步执行命令 salt执行命令有时候会有超时的问题,就是命令下发下去了,部分主机没有返回信息,这时候就很难判断命令或任务是否执行成功.因此,salt提供异步执行的功能,发出命令后立即返回一个jid.然后我们就可以根据这个jid来查询任务是否执行成功. 命令行实现异步 参数--async,返回job ID,根据job ID我们可以查询执行结果. salt --async '*' test.ping salt-run jobs.lookup_jid 2016111716315335…
RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步http://www.cnblogs.com/lianzhilei/p/5977545.html(最下边) 本节涉及最多的还是rabbitmq通信原理知识,要求安装rabbitmq服务 程序用广播topic模式做更好 程序目录结构: 程序简介: # 异步rpc程序 # 博客地址 [第11天博客地址](…
一. BeginInvoke最后两个参数的含义 倒数第二个参数:指该线程执行完毕后的回调函数:倒数第一个参数:可以向回调函数中传递参数. 下面以一段代码说明: /// <summary> /// 执行动作:耗时而已 /// </summary> private void TestThread(string threadName) { Console.WriteLine("线程开始:线程名为:{2},当前线程的id为:{0},当前时间为:{1},", System…
一. 综述 经过两个多个周的整理,异步多线程章节终于整理完成,如下图所示,主要从基本概念.委托的异步调用.Thread多线程.ThreadPool多线程.Task.Parallel并行计算.async和await.线程特殊处理.委托赋值的几种形式等九个方面来介绍异步多线程. 二. 基本概念的梳理 1. 进程.线程和多线程 进程:当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源,而一个进程又是由多个线程组成. 线程:线程是程序中的一个执行流,每个线程都有自己…