zoukankan      html  css  js  c++  java
  • appium学习【四】:第一个appium脚本

    #coding=utf-8
    import os
    import HTMLTestRunner
    import unittest
    import time
    import sys
    from appium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException
    
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    
    #Returns abs path relative to this file and not cwd
    PATH = lambda p:os.path.abspath(
        os.path.join(os.path.dirname(__file__),p)
    )
    
    #类继承unittest.TestCase类,从TestCase类继承是告诉unittest模块的方式,这是一个测试案例。
    class BangbanAndroidTests(unittest.TestCase):
        #setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。
        def setUp(self):
            desired_caps = {}
            desired_caps['deviceName'] = '127.0.0.1:62001'
            desired_caps['platformName'] = 'Android'
            desired_caps['platformVersion'] = '4.4.2'
            desired_caps['appPackage'] = 'com.cbwlkj.cyzb' #邦办达人App的包名
            desired_caps['appActivity'] = 'com.hsdzkj.husong.ui.activity.IndexActivity' #启动时的Activity
            self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
    
        #tearDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出
        def tearDown(self):
            self.driver.close_app()
            self.driver.quit()
    
        #放置的就是我们的测试脚本了,这部分我们并不陌生;因为我们执行的脚本就在这里。
        def test_bangban_login(self):
            try:
                WebDriverWait(self.driver,10).until(
                EC.presence_of_element_located((By.ID,'com.cbwlkj.cyzb:id/contact_phone1'))
                )
                self.driver.find_element_by_id('com.cbwlkj.cyzb:id/contact_phone1').send_keys('18602508223')
                time.sleep(5)
            except TimeoutException:
                print u'达人登录页面加载失败'
                funcName = sys._getframe().f_code.co_name
                print funcName
                pngfile = "E:\appium_code\png\" + funcName + timestr + ".png"
                print pngfile
                self.driver.get_screenshot_as_file(pngfile)
            raise
    
    
    
    #unitest.main()函数用来测试 类中以test开头的测试用例
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTest(
            unittest.defaultTestLoader.loadTestsFromTestCase(BangbanAndroidTests)
        )
        timestr = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time()))
        filename = "E:\appium_code\report\result_" + timestr + ".html"
        fp = open(filename, 'wb')
        runner = HTMLTestRunner.HTMLTestRunner(
            stream=fp,
            title='测试结果',
            description='测试报告'
        )
        runner.run(suite)
        fp.close()  # 测试报告关闭
  • 相关阅读:
    如何改变常用编辑器(eclipse)的字号大小
    IOConsole Updater error
    RNAfold的使用方法
    单因素方差分析(oneway ANOVA)
    Perl内部保留变量(系统变量)
    Perl 中的正则表达式
    Perl Eclipse 格式化代码
    卸载Oracle 9i
    Ubuntu的菜鸟常用的基础命令
    linux as4u2 下安装openssh
  • 原文地址:https://www.cnblogs.com/yrxns/p/7049543.html
Copyright © 2011-2022 走看看