关注交流分享测试资料
#coding:utf-8
import unittest
import uiautomator2 as u2
import uiautomator2.ext.htmlreport as htmlreport
import time
#import autotest
import os
import re
#创建测试类必现继承 unittest。TestCase 类
#父类的东西子类继承之后,self直接调用
class AddTest(unittest.TestCase):
#测试方法必现以“test”开头
def setUp(self):
device = 'XYBK01011205B00054'
self.d = u2.connect_usb(device)
# de_sn = self.d.serial
self.d.press("back")
time.sleep(1)
self.d.make_toast('测试开始', 3)
self.d.wait_timeout = 5.0
self.d.app_start("star.zeus.seraph.xiaoya")
# time.sleep(15)
time.sleep(2)
def tearDown(self):
self.d.press("home")
self.d.make_toast('测试结束', 3)
# self.u.app_stop_all()
# self.u.service("uiautomator").stop() # 停止uiautomator守护程序,允许其他测试框架如 appium 运行
def Assert_Equal_resourceId(self,resourceId,photo_path):
'''
:param resourceId:
:param photo_path:
:return:
ID断言
'''
self.resourceId = resourceId
self.photo_path = photo_path
try:
print(self.d(resourceId=self.resourceId).info["resourceName"])
self.assertEquals(self.resourceId, self.d(resourceId=self.resourceId).info["resourceName"])
# self.d.press("home")
print("pass")
except Exception as ex:
self.d.screenshot("./photo/"+self.photo_path)
self.d.screenshot("../photo/"+self.photo_path)
print(ex)
def Assert_Equal_text(self,text,photo_path):
'''
:param text:
:param photo_path:
:return:
text断言
'''
self.text = text
self.photo_path = photo_path
try:
print(self.d(text=self.text).get_text())
self.assertEquals(self.text, self.d(text=self.text).get_text())
print("pass")
except Exception as ex:
self.d.screenshot("./photo/"+self.photo_path)
self.d.screenshot("../photo/"+self.photo_path)
print(ex)
# def test_01(self):
# '''
#
# :return:
# '''
# #首页
# self.d.click(21, 46)
# time.sleep(1)
# # self.d.xpath('//*[@resource-id="star.zeus.seraph.:id/launcher_rv_tab"]/android.view.ViewGroup[1]/android.widget.ImageView[1]').click()
# self.d.click(560, 131)
# time.sleep(1)
# resourceId = 'star.zeus.seraph.xiaoya:id/seek_bar'
# photo_name = 'error01.png'
# self.Assert_Equal_resourceId(resourceId, photo_name)
def test_02(self):
'''
:return:
'''
#喜马讲书
self.d.click(21,140)
time.sleep(1)
self.d.click(762, 104)
time.sleep(1)
# self.d.disable_popups()
# self.d.click(417, 341)
# if self.d(text='知道了').exists:
# print('******')
# # self.d(text='知道了').click()
# self.d(resourceId = 'star.zeus.seraph.xiaoya:id/tv_confirm').click()
# # self.d.click(417, 341)
# else:
# # self.d.click(417, 341)
# pass
time.sleep(1)
resourceId = 'star.zeus.seraph.xiaoya:id/seek_bar'
photo_name = 'error02.png'
self.Assert_Equal_resourceId(resourceId, photo_name)
self.d(resourceId='star.zeus.seraph.xiaoya:id/banner_music').click()
time.sleep(1)
resourceId = 'star.zeus.seraph.xiaoya:id/seek_bar'
photo_name = 'error03.png'
self.Assert_Equal_resourceId(resourceId, photo_name)
class SubTest(unittest.TestCase):
def setUp(self):
# self.b = Count()
print("start test")
def tearDown(self):
print("end test")
# def test_01(self):
# print(1)
# 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_04"))
suit.addTest(SubTest("test_05"))
suit.addTest(SubTest("test_06"))
suit.addTest(SubTest("test_07"))
suit.addTest(SubTest("test_08"))
suit.addTest(SubTest("test_09"))
suit.addTest(SubTest("test_10"))
runner = unittest.TextTestRunner()
runner.run(suit)
# def main():
# AddTest()
if __name__ == '__main__':
Suit()
#coding:utf-8
import unittest
import os
import re
from # import HTMLTestRunnerCN
suit = unittest.defaultTestLoader.discover(
start_dir="./test_case",
pattern="test_*.py"
)
if __name__ == '__main__':
fr = open('my_report.html','wb')
soundbox_device = 'XYBK01011204300001'
runner = HTMLTestRunnerCN.HTMLTestRunner(
stream=fr,
title="自动化测试报告",
description='详情',
tester="石磊",
device=unicode(soundbox_device),
# verbosity='2'
)
# runner = unittest.TextTestRunner()
runner.run(suit)