扫描二维码加微信分享资料
环境:使用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)