zoukankan      html  css  js  c++  java
  • 自动化测试——书写简单的python脚本

    我使用Appium进行手机的自动化测试,写了个简单的Python脚本,代码如下:

    from appium import webdriver
    from time import sleep
    import unittest
    import os
    import sys
    import warnings
    
    class Tests(unittest.TestCase):
        # 启动app
        def setUp(self):
            app = os.path.abspath('/Users/luoyihao/Downloads/AIOffice_1.9.3_UAT.ipa')
            desired_caps = {}
            desired_caps['app'] = app
            desired_caps['platformName'] = 'ios'  # 设备系统
            desired_caps['platformVersion'] = '13.5.1'  # 设备系统版本
            desired_caps['deviceName'] = 'iphone XR'  # 设备名称
            desired_caps['bundleId'] = 'com.chinamobile.AiOffice'  # 测试app包名
            desired_caps['udid'] = '00008020-001D68C80C99002E'
            desired_caps['automationName'] = 'XCUITest'  # 测试appActivity
            desired_caps['noReset'] = True
            self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
        def testCase1_MultipleSelectors(self):
            sleep(3)
            driver = self.driver
            el1 = driver.find_element_by_xpath(
                "//XCUIElementTypeApplication[@name=\"智慧办公\"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther[2]/XCUIElementTypeScrollView/XCUIElementTypeOther[5]/XCUIElementTypeOther[1]")
            el1.click()
            sleep(3)
            text1 = driver.find_element_by_accessibility_id("已选中 0 项").text
            # print("text1:" + text1)
            el2 = driver.find_element_by_xpath(
                "//XCUIElementTypeOther[@name=\"投诉建议\"]/XCUIElementTypeOther[3]/XCUIElementTypeOther[1]")
            el2.click()
            el3 = driver.find_element_by_xpath(
                "//XCUIElementTypeOther[@name=\"投诉建议\"]/XCUIElementTypeOther[3]/XCUIElementTypeOther[2]")
            el3.click()
            text2 = driver.find_element_by_accessibility_id("已选中 2 项")
            if text2:
                text2 = text2.text
            # print("text2:" + text2)
            sleep(5)
            self.assertIsNone(text2,'multiple selectors case error')
    
        def testCase2_ButtonChange(self):
            driver = self.driver
    
        def tearDown(self):
            driver = self.driver
            self.driver.quit()
    
    if __name__ == '__main__':
        warnings.filterwarnings('ignore')
    
        f = open('log.txt', 'a')
        sys.stdout = f
        sys.stderr = f
        
        suite = unittest.TestSuite()
        suite.addTest(Tests('testCase1_MultipleSelectors'))
        suite.addTest(Tests('testCase2_ButtonChange'))
        unittest.TextTestRunner(verbosity=2).run(suite)
    # 一种简单打印测试报告的方式,执行数,成功数,失败数
  • 相关阅读:
    [Jweb] JSP-编程 06, 内置对象
    [Jweb] Tomcat 解决编码, 乱码问题
    [Jweb] JSP-编程 05 JSP 使用 javabean
    [Jweb] JSP-编程 04 转向 jsp:forward 与 sendRedirect
    [Jweb] JSP-编程 03 静态, 动态包含
    [Jweb] JSP-编程 02 (Directive-include)
    [Jweb] JSP-编程 01 (Directive-page)
    [Jweb] JSP 编程 00 -Declaration- Scriptlet-表达式-Directive (推出原因 : Servlet写标签非常麻烦!)
    [Jweb] 数据库处理以及在 Servlet 中使用 Bean
    [Jweb] Application / TestServletContext.java
  • 原文地址:https://www.cnblogs.com/luoyihao/p/15710025.html
Copyright © 2011-2022 走看看