zoukankan      html  css  js  c++  java
  • Python unittest框架实现appium登录

    import unittest
    from appium.webdriver import webdriver
    from ddt import data,ddt,unpack
    class MyTestCase(unittest.TestCase):
        def setUp(self):#准备的过程
            desired_caps = {}
            desired_caps["platformName"] = "Android"
            desired_caps["platformVersion"] = "4.3"
            desired_caps["deviceName"] = "127.0.0.1:62001"
            desired_caps["appPackage"] = "com.syswin.baijingtoon"
            desired_caps["appActivity"] = ""
            desired_caps["unicodeKeyboard"] = "Ture"  # 支持汉字
            desired_caps["resetKeyboard"] = "Ture"
            self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
            print("setUp")
            #使用ddt的data注解,编写测试用例的参数,此时是多个参数的情况,每条参数就是一条测试用例
        @data(("lsy@qq.com","111111",False),
              ("lsy.com", "1111112", True),
              ("l%$%$", "111111", False))
        @unpack
        def test_login(self,username,password,expectedResult):#执行的过程,以test开头的测试用例
            self.driver.find_element_by_id("email").send_keys(username)#填写邮箱
            self.driver.find_element_by_id("pwd").send_keys(password)#填写密码
            self.driver.find_element_by_id("btn").click()#点击登录按钮
            try:
                if self.driver.find_element_by_id("btn").is_displayed():#判断是都还有登录按钮,如果有result为False否则为Ture
                    result=False
            except Exception :
                result =True
            self.assertEqual(result, expectedResult)#断言
        def tearDown(self):#清理的过程
            self.driver.quit()  # 资源释放,不释放下次执行就会报错new session 不能建立,不能建立时需要重启appium
    if __name__ == '__main__':
        unittest.main()

    测试用例执行层

    import unittest
    import unittestdemo
    cases=unittest.TestLoader.loadTestsFromTestCase(unittestdemo.MyTestCase)#加载测试用例
    mysuit=unittest.TestSuite([cases])#通过用例套件来跑用例
    #用例套件外,想增加一条用例需要
    #注意如果使用ddt数据驱动,每条用例的名称会自动生成,不是固定的test_login,所以不能通过以下方式添加单条用例,只能讲所有csaes加到suit中
    mysuit.addTest(unittestdemo.MyTestCase("test_login"))
    #verbosity日志级别
    # 0 (静默模式): 只能获得总的测试用例数和结果
    # 1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”
    # 2 (详细模式):测试结果会显示每个测试用例的所有相关的信息
    myrunner=unittest.TextTestRunner(verbosity=2)
    myrunner.run(mysuit)
  • 相关阅读:
    2020系统综合实践 第6次实践作业 15组
    2020系统综合实践 第5次实践作业
    2020系统综合实践 第4次实践作业
    2020系统综合实践 第3次实践作业
    2020系统综合实践 第2次实践作业
    系统综合实践_第1次实践作业
    2019 SDN大作业
    2019 SDN上机第7次作业
    第04组 Beta版本演示
    Daily life团队冲刺博客 七
  • 原文地址:https://www.cnblogs.com/alasijia/p/9409184.html
Copyright © 2011-2022 走看看