UI自动化代码示例

import unittest
from appium import webdriver
from time import sleep
from HTMLTestRunner import HTMLTestRunner
import time
from appium.webdriver.common.touch_action import TouchAction
# 写在前面,将手机USB调试权限打开,将充电不熄屏打开,已经绑定手环,更好AGPS


class Dttest(unittest.TestCase):

@classmethod
def setUpClass(cls):
print("start setup")
desired_caps = {
'platformName': 'Android', # 被测手机是安卓
'platformVersion': '10', # 手机安卓版本
'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
'appPackage': 'com.zjw.apps3pluspro', # 启动APP Package名称
'appActivity': '.SplashActivity', # 启动Activity名称
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置缺省等待时间
cls.driver.implicitly_wait(10)
cls.driver.find_element_by_class_name("android.widget.Button").click() # 测试版本加本行代码,非测试版本不用

@classmethod
def tearDownClass(cls):
print("over")

def test_clickmbsd(self):
"""" 点击:目标设定 """
self.driver.find_element_by_id("layoutPen").click()
self.bt = self.driver.find_element_by_id('public_head_title')
self.assertEqual(self.bt.text, "目标设定")

def test_ydmbqd(self):
"""" 点击运动目标,滑动后,‘确定’ """
self.driver.find_element_by_id("layoutStep").click()
sleep(1)
self.driver.swipe(550, 2000, 550, 1800, duration=3000)
sleep(2)
self.driver.find_element_by_id("tvOk").click()
self.bt = self.driver.find_element_by_id('public_head_title')
self.assertEqual(self.bt.text, "目标设定")

def test_ydmbqx(self):
"""" 点击:运动目标,滑动后,‘取消’ """
self.driver.find_element_by_id("layoutStep").click()
sleep(1)
self.driver.swipe(550, 2000, 550, 1800, duration=3000)
sleep(1)
self.driver.find_element_by_id("tvCancel").click()
self.bt = self.driver.find_element_by_id('public_head_title')
self.assertEqual(self.bt.text, "目标设定")

def test_smmbqd(self):
"""" 点击:睡眠目标,滑动后,‘确定’ """
self.driver.find_element_by_id("layoutSleep").click()
sleep(1)
self.driver.swipe(550, 2000, 550, 1800, duration=3000)
sleep(2)
self.driver.find_element_by_id("tvOk").click()
self.bt = self.driver.find_element_by_id('public_head_title')
self.assertEqual(self.bt.text, "目标设定")

def test_smmbqx(self):
"""" 点击:睡眠目标,滑动后,‘取消’ """
self.driver.find_element_by_id("layoutSleep").click()
sleep(1)
self.driver.swipe(550, 2000, 550, 1800, duration=3000)
sleep(1)
self.driver.find_element_by_id("tvCancel").click()
self.bt = self.driver.find_element_by_id('public_head_title')
self.assertEqual(self.bt.text, "目标设定")


if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(Dttest("test_clickmbsd"))
suite.addTest(Dttest("test_ydmbqd"))
suite.addTest(Dttest("test_ydmbqx"))
suite.addTest(Dttest("test_smmbqd"))
suite.addTest(Dttest("test_smmbqx"))


# unittest.TextTestRunner(verbosity=1).run(suite)

now_time = time.strftime("%Y-%m-%d %H_%M_%S")
fp = open('./report/' + now_time + 'result.html', 'wb')
runner = HTMLTestRunner(stream=fp,
title="3+PRO",
description="运行环境:Windows 10, redmi10X"
)

runner.run(suite)
fp.close()

posted @ 2021-04-19 11:08  ycc0022  阅读(456)  评论(0)    收藏  举报