您的位置:首页 > 编程语言 > Qt开发

自动化测试培训:设计和实现分布式QTP调用

2015-12-14 15:49 183 查看

自动化测试培训:设计和实现分布式QTP调用

自动化测试的过程中一个很核心的需求就是执行效率,单位时间里要执行更多的测试用例。为了完成该要求,我们开发一个调度工具,让qtp运行在不同的机器上,通过Controller(开发的中央控制软件)来控制各个机器的终端,Controller发送指令,让终端启动qtp,然后执行脚本。 因为poptest上课用的是python作为主要的测试开发语言来学习,所以案例采用python来实现,下面首先是实现cs架构控制软件,客户端发送指令,服务器执行qtp的思路代码,你也可以通过其他编程语言来实现如c#,java等。 第一步先实现服务器端和客户端代码服务器段代码:from socket import * from time import ctime HOST = '' #空字符表示不绑定如何ip,如何ip都可以与此服务器连接PORT = 21533 #端口是随机的,但是不能用与计算机其他程序端口重复,建议1024-65535。还有值得注意,如果此脚本运行2次,则会出现错误,第二次需 #要改动代码,因为关闭此脚本时,没有关闭端口,第二次运行时,21533已经存在。要么命令行去关闭端口,要么重启,要么改程序。BUFSIZ = 1024 #缓存大小,我只发字符,这里设置为1k足以。发送大东西,需要用循环。ADDR = (HOST,PORT) #绑定tcpSerSock = socket(AF_INET,SOCK_STREAM) # SOCK_STREAM指的是tcptcpSerSock.bind(ADDR) #绑定tcpSerSock.listen(5) #监听 while True: #死循环 print 'waiting for connection...' #打印 tcpCliSock, addr = tcpSerSock.accept() #接受消息,当有消息接收后,才会再向下执行 print '...connected from:', addr #接受到消息后,打印消息 while True: #又一个死循环。除非接收到消息为空,才会跳出次循环 data = tcpCliSock.recv(BUFSIZ) #设置数据大小 if not data: #如上上所述,数据为空,则结束此层循环 break tcpCliSock.send('[%s] %s'%(ctime(), data)) #发送消息到客户端,消息为“服务器时间”+“客户端接收到的消息” tcpCliSock.close() #最后2行代码永远不会被执行,因为前面是死循环,这也造成了,我之前说的,第二次执行代码是会出错。tcpSerSock.close() 客户端代码from socket import * HOST = 'localhost' #设置自己主机PORT = 21533 #端口必须和服务器设置的一致BUFSIZ = 1024 <span style="white-space:pre"> </span>ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) tcpCliSock.connect(ADDR) #连接,而不是监听while True: #死循环 data = raw_input('> ') #等待用户输入 if not data: #如果为空,则,跳出死循环,执行tcpCliSock.close() break tcpCliSock.send(data) #如果不空,则发送 data = tcpCliSock.recv(BUFSIZ #接受服务器数据,并且处理,其处理过程是在此date之前加入时间 if not data: #接受数据为空,则,退出 break print data #打印数据tcpCliSock.close() 第二步 实现python调用qtp代码 import win32com.client
o = win32com.client.Dispatch("QuickTest.Application")
o.Launch()

o.Open("C:\\Documents and Settings\\DChung\\Desktop\\XMLRequest")
o.Visible = True
o.Test.Run(o.Test)
---第三步 在服务器端加入python处理qtp代码在服务器端加入代码,处理客户端的指令,如我们在客户端设计指令为“ start 脚本名称” data = tcpCliSock.recv(BUFSIZ) #设置数据大小 if not data: #如上上所述,数据为空,则结束此层循环 break elseif data=“ start 脚本名称”: 解析字符串,如果是start 启动qtp 加载指定脚本 第四步:可以进一步设计优化改控制软件 加入多个客户端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件测试开发