用錘子便籤搭建簡單的unittest框架
阿新 • • 發佈:2018-12-11
寫了一個簡單的小例子,能通過appium開啟錘子便籤,並輸入“abc”,通過斷言檢測輸入的資訊是否正確 用了pycharm這個IDE來編寫appium,執行時需要先在命令列輸入appium開啟appium,然後再執行pycharm 先在pycharm裡新建了一個名為smart的專案,在smart裡建了一個名為bianqian的資料夾,這個資料夾就用來存放便籤的測試 先自己寫了一個不帶框架的小測試(smartbianqian.py)
# -*- coding:utf-8 -*- import os, time, unittest,sys from appium import webdriver # from selenium import webdriver desired_caps = { 'platformName': 'Android', # 裝置系統 'deviceName': '28f5751a', # 裝置名稱 'platformVersion': '7.1.1', # 裝置系統版本 'noReset':'True', 'unicodeKeyboard':'True',#能輸入中文字元 'resetKeyboard':'True',#能輸入中文字元 'appPackage': 'com.smartisanos.notes', # apk包名 'appActivity': 'com.smartisanos.notes.NotesActivity', # apk的launcherActivity } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 啟動app time.sleep(5) # self.verificationErrors = "今天天氣不錯在家學習!" #設定的斷言 # 點選“輸入框” driver.find_element_by_id("com.smartisanos.notes:id/new_note_button").click() # 輸入欄位 searchInputBox = driver.find_element_by_id('com.smartisanos.notes:id/list_rtf_view') driver.find_element_by_id("com.smartisanos.notes:id/list_rtf_view").send_keys("appium") driver.tap([(983, 1820)])#通過座標定位 driver.find_element_by_id("com.smartisanos.notes:id/edit_done_button").click() driver.find_element_by_id("com.smartisanos.notes:id/back_button").click() if __name__ == '__main__': unittest.main() #unittest.main()是執行主函式,執行後會看到測試結果
# -*- coding:utf-8 -*- import os, time, unittest,sys from appium import webdriver # from selenium import webdriver class Appium_test(unittest.TestCase): def setUp(self): desired_caps = { 'platformName': 'Android', # 裝置系統 'deviceName': '28f5751a', # 裝置名稱 'platformVersion': '7.1.1', # 裝置系統版本 'noReset':'True', 'unicodeKeyboard':'True',#能輸入中文字元 'resetKeyboard':'True',#能輸入中文字元 'appPackage': 'com.smartisanos.notes', # apk包名 'appActivity': 'com.smartisanos.notes.NotesActivity', # apk的launcherActivity } self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 啟動app time.sleep(5) self.verificationErrors = "abc" #設定的斷言 def tearDown(self): time.sleep(10) assertt = self.driver.find_element_by_id("com.smartisanos.notes:id/list_rtf_view").text self.assertEqual(assertt,self.verificationErrors,msg="abd")#驗證輸入的文字是否是abd因為輸入的是abc,所以不對,應該會報錯 # 斷言:實際結果,預期結果,錯誤資訊 self.driver.quit() def test_creat(self): # 根據元素xpath來定位 # 點選“輸入框” self.driver.find_element_by_id("com.smartisanos.notes:id/new_note_button").click() # 輸入欄位 searchInputBox = self.driver.find_element_by_id('com.smartisanos.notes:id/list_rtf_view') #searchInputBox.send_keys("appium") self.driver.find_element_by_id("com.smartisanos.notes:id/list_rtf_view").send_keys("abc") self.driver.tap([(983, 1820)]) if __name__== '__main__': unittest.main(verbosity=2)
生成html的測試報告(html.py)
# coding=utf-8 import unittest from unittestsmart import Appium_test#從unittestsmart匯入 from HTMLTestRunner import HTMLTestRunner if __name__ == '__main__': suite = unittest.TestSuite() suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Appium_test)) with open('HTMLReport7.html', 'wb+') as f: runner = HTMLTestRunner(stream=f, title='appium測試報告', description='新增一條記錄並儲存', verbosity=2 ) runner.run(suite)