美文网首页
Windows客户端自动化测试方案

Windows客户端自动化测试方案

作者: ORCLee | 来源:发表于2023-10-18 17:00 被阅读0次

一、 WinAppDriver+Selenium+Appium

1、 简介

    WinAppDriver 是一项服务,支持在 Windows 应用程序上执行 Selenium-like UI测试自动化。此服务支持在Windows 10 PC上测试 UWP、WinForms、WPF 和 Win32应用程序。

2、 安装和运行WinAppDriver

3、 安装 Selenium 和 Appium

python -m pip install selenium==3.5.0 
python -m pip install appium==1.3.0

    建议安装 selenium 3.5.0 版本和 appium 1.3.0 版本

4、 简单用法

import unittest
from appium import webdriver


class SimpleCalculatorTests(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        desired_caps = {}
        desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"
        self.driver = webdriver.Remote(
            command_executor="http://127.0.0.1:4723", desired_capabilities=desired_caps
        )

    @classmethod
    def tearDownClass(self):
        self.driver.quit()

    def getResults(self):
        """获取结果值"""
        displaytext = self.driver.find_element_by_accessibility_id(
            "CalculatorResults"
        ).text
        displaytext = displaytext.strip("显示为 ")
        displaytext = displaytext.rstrip(" ")
        displaytext = displaytext.lstrip(" ")
        return displaytext

    def testInitialize(self):
        """测试初始化"""
        self.driver.find_element_by_name("清除").click()
        self.driver.find_element_by_name("七").click()
        self.assertEqual(self.getResults(), "7")
        self.driver.find_element_by_name("清除").click()

    def testAddition(self):
        """测试加法"""
        self.driver.find_element_by_name("一").click()
        self.driver.find_element_by_name("加").click()
        self.driver.find_element_by_name("七").click()
        self.driver.find_element_by_name("等于").click()
        self.assertEqual(self.getResults(), "8")

    def testCombination(self):
        """测试混合运算"""
        self.driver.find_element_by_name("七").click()
        self.driver.find_element_by_name("乘以").click()
        self.driver.find_element_by_name("九").click()
        self.driver.find_element_by_name("加").click()
        self.driver.find_element_by_name("一").click()
        self.driver.find_element_by_name("等于").click()
        self.driver.find_element_by_name("除以").click()
        self.driver.find_element_by_name("八").click()
        self.driver.find_element_by_name("等于").click()
        self.assertEqual(self.getResults(), "8")

    def testDivision(self):
        """测试除法"""
        self.driver.find_element_by_name("八").click()
        self.driver.find_element_by_name("八").click()
        self.driver.find_element_by_name("除以").click()
        self.driver.find_element_by_name("一").click()
        self.driver.find_element_by_name("一").click()
        self.driver.find_element_by_name("等于").click()
        self.assertEqual(self.getResults(), "8")

    def testMultiplication(self):
        """测试乘法"""
        self.driver.find_element_by_name("九").click()
        self.driver.find_element_by_name("乘以").click()
        self.driver.find_element_by_name("九").click()
        self.driver.find_element_by_name("等于").click()
        self.assertEqual(self.getResults(), "81")

    def testSubtraction(self):
        """测试减法"""
        self.driver.find_element_by_name("九").click()
        self.driver.find_element_by_name("减").click()
        self.driver.find_element_by_name("一").click()
        self.driver.find_element_by_name("等于").click()
        self.assertEqual(self.getResults(), "8")


if __name__ == "__main__":
    suite = unittest.TestLoader().loadTestsFromTestCase(SimpleCalculatorTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

5、 文档

    WinAppDriver Docs

二、 pywinauto

1、 简介

    pywinauto是一组Python模块,用于自动操作 Windows GUI。 既支持将鼠标和键盘操作发送到对话框和控件的简单操作,也支持更复杂的操作,例如获取文本数据。支持两种类型的后端程序 Win32API(MFC、VB6,、VCL、简单的WinForms控件、 大多数旧的遗留应用程序) 和 MS UI Automation (WinForms, WPF, Store apps, Qt5, browsers)

2、 安装

python -m pip install pywinauto

3、 简单用法

from pywinauto.application import Application

app = Application(backend="uia").start("Notepad.exe")
app["无标题 - 记事本"].draw_outline()
app["无标题 - 记事本"].menu_select("编辑->替换...")
app["无标题 - 记事本"]["取消"].click()
app["无标题 - 记事本"].Edit.type_keys("Hi from Python interactive prompt %s" % str(dir()), with_spaces = True)
app["无标题 - 记事本"].menu_select("文件->退出")
app["无标题 - 记事本"]["不保存"].click()

4、 文档

    pywinauto 0.6.8 documentation

相关文章

网友评论

      本文标题:Windows客户端自动化测试方案

      本文链接:https://www.haomeiwen.com/subject/mwjcidtx.html