1. 程式人生 > >用錘子便籤搭建簡單的unittest框架

用錘子便籤搭建簡單的unittest框架

寫了一個簡單的小例子,能通過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)