对于某些负载测试模拟,我正在查看使用AHK 1.1编写脚本。问题是我们有一个带有多个工作站的客户端 - 服务器设置,所以我真的希望能够触发同一个脚本(甚至变体)一次在多台PC上运行,以准确模拟多个用户所有锤击系统
更有用的是确保在同一时间内完全(在一定的容差范围内)进行相同的测试,以检查这不会导致问题。
最好的方法是什么?是从AHK内部做的,还是使用一些独立的远程控制工具让我在我选择的PC上启动脚本?
答案 0 :(得分:2)
使用ahk,您将需要充当服务器和客户端的脚本,因此无论使用何种方法,都需要运行...
关于TCP / IP你可以这样做,你只需要找出你的脚本可以使用的任何可用/开放的帖子......
前几天我帮助一位澳大利亚人设置了大量的服务器/客户端脚本
使用Bentschi的Socket Class看起来像这样
服务器强>
;Server
#include Socket.ahk
myTcp := new SocketTCP()
myTcp.bind("addr_any", 54321)
myTcp.listen()
myTcp.onAccept := Func("OnTCPAccept")
return
OnTCPAccept(this)
{
newTcp := this.accept()
newTcp.onRecv := func("OnTCPRecv")
newTcp.sendText("Connected")
}
OnTCPRecv(this)
{
msgbox % this.recvText()
}
<强>客户端:强>
;Client
#include Socket.ahk
myTcp := new SocketTCP()
myTcp.connect("your servers A_IPAddress1", 54321) ; lokal
myTcp.onRecv := Func("OnTcpRecv")
return
OnTcpRecv(this)
{
ToolTip % this.RecvText()
}
但是要使用或设置类似的东西,您可能需要知道网络上可以使用哪些端口,或者能够根据需要更改设置。
TCP / IP脚本的速度是在毫秒内(我网络上的20下),因此没有真正的容忍度。
希望有所帮助
答案 1 :(得分:0)
如写Sidola,您可以检查某个文件或文件夹的共享文件夹。您可以使用 IfExist命令。这是一个例子:
Loop
{
IfExist, c:\a.txt
{
break
}
}
;code to execute if c:\a.txt exists comes below.
MsgBox, 1
您还可以添加Sleep命令以减轻对hdd的压力,例如在下面的代码中:
Loop
{
IfExist, c:\a.txt
{
break
}
Sleep, 1000
}
;code to execute if c:\a.txt exists comes below.
MsgBox, 1
此外,始终使用来自http://ahkscript.org/的AutoHotkey及其文档(当前最新版本,新官方网站)! Autohotkey.com上的AutoHotkey及其文档已过时,使用它们可能会遇到一些问题!
答案 2 :(得分:0)
我无法提供实际代码,但有一种方法可以通过Admin $共享将服务注入局域网机器并远程控制它。这样AHK就不需要一直在LAN计算机上运行 我不知道这是怎么做到的,但是PsShutdown是通过休眠LAN PC实现的,这通常是不可能的。
如果你真的设法做到这一点,如果你可以分享它会很棒。