python自动化测试脚本-UIautomator2

关注交流分享测试资料

#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)




猜你喜欢

转载自blog.csdn.net/shilei123456789666/article/details/106673307