GUI测试自动化

发布时间:2024-11-22 07:02

随着技术进步,自动化测试工具在游戏测试中越来越重要。 #生活乐趣# #游戏乐趣# #游戏测试#

最新推荐文章于 2024-10-02 13:32:25 发布

Ryan.Mo 于 2017-04-11 14:24:05 发布

'''

GUI测试自动化

语言:python

模块:pywinauto

环境:windows7中文、python-2.6_32bit、pywinauto-0.40、SendKeys-0.3

FuncName: pywinauto_notepad.py

Desc: study pywinauto

Date: 2017-4-10 10:30

Author: 雷小莫_code

Home:http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-9487-pv1otSnSmsC29jQWT4wc-passport.csdn.net

'''

from pywinauto import application

import SendKeysCtypes

import time

class Pywin(object):

"""

pywin framwork main class

tool_name : 程序名称,支持带路径

windows_name : 窗口名字

"""

SLEEP_TIME = 1

def __init__(self):

"""

初始化方法,初始化一个app

"""

self.app = application.Application()

def run(self, tool_name):

"""

启动应用程序

"""

self.app.start_(tool_name)

time.sleep(1)

def connect(self, window_name):

"""

连接应用程序

app.connect_(path = r"c:\windows\system32\notepad.exe")

app.connect_(process = 2341)

app.connect_(handle = 0x010f0c)

"""

self.app.connect_(title = window_name)

time.sleep(1)

def close(self, window_name):

"""

关闭应用程序

"""

self.app[window_name].Close()

time.sleep(1)

def max_window(self, window_name):

"""

最大化窗口

"""

self.app[window_name].Maximize()

time.sleep(1)

def menu_click(self, window_name, menulist):

"""

菜单点击

"""

self.app[window_name].MenuSelect(menulist)

time.sleep(1)

def input(self, window_name, controller, content):

"""

输入内容

"""

self.app[window_name][controller].TypeKeys(content)

time.sleep(1)

def click(self, window_name, controller):

"""

鼠标左键点击

example:

下面两个功能相同,下面支持正则表达式

app[u'关于“记事本”'][u'确定'].Click()

app.window_(title_re = u'关于“记事本”').window_(title_re = u'确定').Click()

"""

self.app[window_name][controller].Click()

time.sleep(1)

def double_click(self, window_name, controller, x = 0,y = 0):

"""

鼠标左键点击(双击)

"""

self.app[window_name][controller].DoubleClick(button = "left", pressed = "", coords = (x, y))

time.sleep(1)

def right_click(self, window_name, controller, order):

"""

鼠标右键点击,下移进行菜单选择

window_name : 窗口名

controller:区域名

order : 数字,第几个命令

"""

self.app[window_name][controller].RightClick()

for down in range(order):

SendKeysCtypes.SendKeys('{DOWN}')

time.sleep(0.5)

SendKeysCtypes.SendKeys('{ENTER}')

time.sleep(1)

if __name__ == "__main__":

app = Pywin()

tool_name = "notepad.exe"

window_name = u"无标题 - 记事本"

menulist = u"帮助->关于记事本"

controller = "Edit"

content = u"编辑notepad"

FileName = u"临时文本"

window_name_new = FileName + u"- 记事本"

app.run(tool_name)

app.connect(window_name)

app.max_window(window_name)

app.menu_click(window_name,menulist)

app.click(u'关于记事本', u'确定')

app.input(window_name,controller,content)

app.input(window_name,controller,"^a")

app.right_click(window_name,controller,3)

app.right_click(window_name,controller,4)

SendKeysCtypes.SendKeys('{ENTER}')

app.input(window_name,controller,"^v")

app.input(window_name,controller,"^s")

app.input(u"另存为",controller,FileName)

app.click(u"另存为","Button")

try:

app.click(u"确认另存为","Button")

except:

pass

finally:

app.close(window_name_new)


网址:GUI测试自动化 https://www.yuejiaxmz.com/news/view/187548

相关内容

10大主流自动化测试工具推荐
好用的自动化测试工具推荐
自动化测试流程(超详细总结)
自动化测试流程(超详细整理)
2024 年 15 个最佳自动化 UI 测试工具【建议收藏】
10款常见常用的自动化测试工具推荐
2024年最全自动化软件测试工具推荐
压力测试简单案例
最全测试开发工具推荐(含自动化、性能、稳定性、抓包)
使用 JMeter 进行压力测试

随便看看