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)
原文地址:https://www.cnblogs.com/alasijia/p/9409184.html