掃描二維碼關注分享資料
環境:使用python2,unittest,UIautomator2
環境搭建:自己百度搜索或者參考鏈接:文檔:UIautomator.note
鏈接:http://note.youdao.com/noteshare?id=6d05a6d20c7fc2ab857b56749d8a77d3&sub=5D76D441A6994ABE95817D4BFB651CF7
測試用例腳本:
#coding:utf-8
import unittest
from count import Count
import uiautomator2 as u2
import uiautomator2.ext.htmlreport as htmlreport
import time
network_password = '12345678'
#創建測試類必現繼承 unittest。TestCase 類
#父類的東西子類繼承之後,self直接調用
class AddTest(unittest.TestCase):
#測試方法必現以“test”開頭
def setUp(self):
self.d = u2.connect_usb('3af35e3e0211')
hrp = htmlreport.HTMLReport(self.d, 'report')
# hrp.patch_click()
self.d.make_toast('測試開始', 3)
def tearDown(self):
self.d.make_toast('測試結束', 3)
def test_01(self):
# c = Count()
self.d.app_start("com.baidu.spil.assistant")
time.sleep(15)
a = 3
while a >= 0:
a -= 1
if not self.d(text="我的").exists:
self.d.app_stop_all()
time.sleep(8)
self.d.app_start("com.baidu.spil.assistant")
time.sleep(8)
result = self.d(text="我的").wait(timeout=10)
try:
self.assertEqual(result,True)
print("我的按鈕測試通過")
except:
print("沒有找到我的按鈕"+result)
def test_02(self):
self.d.app_start("com.baidu.spil.assistant")
time.sleep(15)
result = self.d(text='我的').click()
a = 3
while a >= 0:
a -= 1
if not self.d(text="我的").exists:
self.d.app_stop_all()
time.sleep(8)
self.d.app_start("com.baidu.spil.assistant")
time.sleep(8)
result = self.d(text="創新實驗室").click()
result = self.d(text="持續對話").click()
result = self.d(className = "android.view.View", instance = 13).click()
print result
# d(className="android.view.View", instance=16).click()
try:
self.assertEqual(result, None)
print("持續對話按鈕測試通過")
except:
print("沒有找到持續對話按鈕"+result)
def test_03(self):
'''
圖片驗證方案還沒成功
:return:
'''
self.d.app_start("com.baidu.spil.assistant")
time.sleep(15)
result = self.d(text='我的').click()
a = 2
while a >= 0:
a -= 1
if not self.d(text="我的").exists:
self.d.app_stop_all()
time.sleep(8)
self.d.app_start("com.baidu.spil.assistant")
time.sleep(8)
result = self.d(text="創新實驗室").click()
time.sleep(3)
result = self.d.screenshot("./photo/chuangxin.png")
# result = self.d.screenshot("./photo/my.png")
try:
self.assertEqual(result,"./TruePhoto/chuangxin.png")
print("圖片匹配,測試通過")
except:
print("圖片不匹配,請檢查該UI界面")
class SubTest(unittest.TestCase):
def setUp(self):
self.b = Count()
print("start test")
def tearDown(self):
print("end test")
def test_01(self):
result = self.b.sub(4,5)
self.assertEqual(result,-1)
def Suit():
suit = unittest.TestSuite()
# suit.addTest(AddTest("test_01"))
# suit.addTest(AddTest("test_02"))
suit.addTest(AddTest("test_03"))
# suit.addTest(SubTest("test_02"))
runner = unittest.TextTestRunner()
runner.run(suit)
# def main():
# AddTest()
if __name__ == '__main__':
Suit()
運行測試用例腳本:
#coding:utf-8
import unittest
import HTMLTestRunnerCN
suit = unittest.defaultTestLoader.discover(
start_dir="./test_case",
pattern="test_*.py"
)
if __name__ == '__main__':
fr = open('test1.html','wb')
soundbox_device = 'VN1L1832100AY'
runner = HTMLTestRunnerCN.HTMLTestRunner(
stream=fr,
title="自動化測試報告",
description='詳情',
tester="石磊",
device=unicode(soundbox_device),
# verbosity='2'
)
# runner = unittest.TextTestRunner()
runner.run(suit)