日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Appium+python的单元测试框架unittest(2)——fixtures(转)

發布時間:2023/12/20 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Appium+python的单元测试框架unittest(2)——fixtures(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(原文:https://www.cnblogs.com/fancy0158/p/10046333.html)

unittest提供的Fixtures用以在測試執行前和執行后進行必要的準備和清理工作,可以定義在模塊、類、用例執行前后的工作

1、模塊

在模塊中定義setUpModule()和tearDownModule()處理模塊執行前后的工作

def setUpModule():print('module start')def tearDownModule():print('module end')

2、測試類

在測試類中定義setUpClass()和tearDownClass()函數處理測試類執行前的工作,setUpClass和tearDownClass的寫法稍微不同:

a、需通過@classmethod進行裝飾

b、方法的參數是cls,cls與self并無不同之處,只是大家都習慣了這樣的命名

@classmethod def setUpClass(cls):print('Class start') @classmethod def tearDownClass(cls):print('class end')

3、測試用例

即我們前面熟悉的setUp()和tearDown()方法,每個用例執行前后都會調用

def setUp(self):print('test case start') def tearDown(self):print('test case end')

在前面我們把Desired Capabilities 啟動 session 時相關的配置放在setUp()中,把driver的退出放在tearDown()中。導致每執行一個測試用例,就需要配置連接一次移動端設備。

我們可以把相關的配置工作和清理工作放到測試類中,這樣就不必每次執行一個case都重新配置和退出。比如,在計算器中,配置連接到移動端應用,連續執行加運算和減運算case,再退出。

# coding:utf-8 from appium import webdriver import unittest, time
#模塊的fixtures處理 def setUpModule():print('module start') def tearDownModule():print('module end')class TestFixture(unittest.TestCase):
#測試類中配置參數@classmethoddef setUpClass(cls):print('Class start')# Desired Capabilities啟動session時配置的參數desired_caps = {}desired_caps['platformName'] = 'Android' #移動平臺desired_caps['platformVersion'] = '4.4.2' # 指定平臺的系統版本desired_caps['deviceName'] = 'Android Emulator' # 設備名稱desired_caps['appPackage'] = 'com.android.calculator2' # 包名desired_caps['appActivity'] = '.Calculator' # launcherActivity
cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 定義webdriver對象@classmethoddef tearDownClass(cls):print('class end')cls.driver.quit() #所有用例執行完之后退出def setUp(self):print('test case start') #用例執行前def tearDown(self):print('test case end') #用例執行后#加號運算casedef test_add(self):print('add case is running')self.driver.find_element_by_name("5").click()self.driver.find_element_by_name("+").click()self.driver.find_element_by_name("8").click()self.driver.find_element_by_android_uiautomator("new UiSelector().text(\"=\")").click()time.sleep(2)self.driver.find_element_by_name("CLR").click()#減運算casedef test_sub(self):print('sub case is running')self.driver.find_element_by_name("9").click()self.driver.find_element_by_xpath("//android.widget.Button[contains(@content-desc,'minus')]").click()self.driver.find_element_by_name("1").click()self.driver.find_element_by_name("=").click()time.sleep(2)self.driver.find_element_by_name("CLR").click()if __name__ == '__main__':#構造測試集suite = unittest.TestSuite()suite.addTest(TestFixture('test_sub'))suite.addTest(TestFixture('test_add'))#執行測試runner = unittest.TextTestRunner()runner.run(suite)

測試輸出結果如下:

module start Class start test case start sub case is running test case end test case start add case is running test case end class end module end

可以看到,在測試機上,執行完減運算后馬上執行加運算,測試用例連續執行。執行完所有的測試用例后才退出

轉載請注明出處并帶上原鏈接

轉載于:https://www.cnblogs.com/dorlin/p/10381774.html

總結

以上是生活随笔為你收集整理的Appium+python的单元测试框架unittest(2)——fixtures(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。