雷电模拟器为例:
from appium import webdriver
import unittest
from time import sleep
import HTMLTestRunner
from appium.webdriver.common.touch_action import TouchAction
class appTest(unittest.TestCase):
def setUp(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = 'emulator-5554'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
# 获取浏览器对象
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
sleep(2)
# 用例1:点击WLAN----修改网络---后动代理---自动输入值
def test_wlan(self):
driver = self.driver
sleep(2)
#点击无线
driver.find_element_by_xpath("//*[contains(@text,'WLAN')]").click()
sleep(2)
#长按wifi
wifi = driver.find_element_by_id("android:id/summary")
TouchAction(driver).long_press(wifi,3000).perform()
sleep(2)
#点击“修改网络”
driver.find_element_by_xpath("//*[contains(@text,'修改网络')]").click()
sleep(2)
#点击“高级选项”
driver.find_element_by_id("com.android.settings:id/wifi_advanced_togglebox").click()
# driver.find_element_by_xpath("//*[contains(@text,'高级选项')]").click()
sleep(2)
#点击“无”
driver.find_element_by_xpath("//*[contains(@text,'无')]").click()
sleep(2)
#点击“手动”
driver.find_element_by_xpath("//*[contains(@text,'手动')]").click()
sleep(2)
#输入”代理服务器主机名“
driver.find_element_by_id("com.android.settings:id/proxy_hostname").send_keys("192.168.48.131")
sleep(2)
#输入”代理服务器端口“
driver.find_element_by_id("com.android.settings:id/proxy_port").send_keys("7777")
sleep(2)
#输入”对以下网址不适用代理“
driver.find_element_by_id("com.android.settings:id/proxy_exclusionlist").send_keys("baidu.com")
sleep(2)
#点击IP设置
driver.find_element_by_xpath("//*[contains(@text,'DHCP')]").click()
sleep(2)
#选择”静态“
driver.find_element_by_xpath("//*[contains(@text,'静态')]").click()
sleep(2)
#滑动
driver.swipe(200,1570,200,620)
sleep(2)
#ip地址
driver.find_element_by_id("com.android.settings:id/ipaddress").send_keys("127.0.0.1")
sleep(2)
#dns2
driver.find_element_by_id("com.android.settings:id/dns2").send_keys("1.1.1.1")
sleep(4)
#点击“保存”
driver.find_element_by_xpath("//*[contains(@text,'保存')]").click()
sleep(2)
#点击返回
driver.find_element_by_class_name("android.widget.ImageButton").click()
# TouchAction(driver).tap(x=91,y=159,count=1)
sleep(2)
#用例2:绘图Z
def test_huitu(self):
driver = self.driver
# 存储 移动到 无线
sleep(2)
WLAN = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
cunchu = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
driver.drag_and_drop(cunchu, WLAN)
sleep(2)
# 点击"安全"
driver.find_element_by_xpath("//*[contains(@text,'安全')]").click()
sleep(2)
# 点击“屏幕锁屏方式”
driver.find_element_by_xpath("//*[contains(@text,'屏幕锁定方式')]").click()
sleep(2)
# 点击“图案”
driver.find_element_by_xpath("//*[contains(@text,'图案')]").click()
# 180 636
# 901 636
# 180 1360
# 904 1360
sleep(2)
TouchAction(driver).press(x=180, y=636).wait(3000) \
.move_to(x=720, y=0).wait(1000) \
.move_to(x=-720, y=720).wait(1000) \
.move_to(x=720, y=0).wait(1000) \
.release().wait(1000)\
.perform()
sleep(2)
driver.find_element_by_xpath("//*[contains(@text,'继续')]").click()
sleep(2)
driver.find_element_by_xpath("//*[contains(@text,'取消')]").click()
sleep(2)
# 点击返回
driver.find_element_by_class_name("android.widget.ImageButton").click()
sleep(2)
#用例3:滑动亮度
def test_liangdu(self):
driver = self.driver
sleep(2)
#点击”显示“
driver.find_element_by_xpath("//*[contains(@text,'显示')]").click()
sleep(3)
# 点击亮度
driver.find_element_by_xpath("//*[contains(@text,'亮度')]").click()
sleep(3)
#拖动
TouchAction(driver).press(x=503, y=217).wait(3000).move_to(x=853, y=209).release().perform()
sleep(2)
#用例4:修改提示音和通知
def test_music(self):
driver = self.driver
sleep(2)
# 点击”提示音和通知“
driver.find_element_by_xpath("//*[contains(@text,'提示音和通知')]").click()
sleep(2)
# 拖动”媒体音量“
TouchAction(driver).press(x=165, y=507).wait(3000).move_to(x=882, y=503).release().perform()
sleep(2)
# 拖动”闹钟音量“
TouchAction(driver).press(x=165, y=735).wait(3000).move_to(x=868, y=735).release().perform()
sleep(2)
# 拖动铃声音量
TouchAction(driver).press(x=165, y=967).wait(3000).move_to(x=919, y=963).release().perform()
sleep(2)
# ”开启“ 来电响铃振动
driver.find_element_by_id("android:id/switchWidget").click()
sleep(2)
# 点击“手机铃声”
driver.find_element_by_xpath("//*[contains(@text,'手机铃声')]").click()
sleep(3)
# 点击“无”
driver.find_element_by_xpath("//*[contains(@text,'无')]").click()
sleep(3)
# 点击“确定”
driver.find_element_by_xpath("//*[contains(@text,'确定')]").click()
sleep(3)
# 点击“默认通知铃声”
driver.find_element_by_xpath("//*[contains(@text,'默认通知铃声')]").click()
sleep(3)
# 点击“无”
driver.find_element_by_xpath("//*[contains(@text,'无')]").click()
sleep(3)
# 点击“确定”
driver.find_element_by_xpath("//*[contains(@text,'确定')]").click()
sleep(3)
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
print("ssss")
test = unittest.TestSuite()
test.addTest(appTest("test_wlan"))
sleep(3)
test.addTest(appTest("test_huitu"))
sleep(3)
test.addTest(appTest("liangdu"))
sleep(3)
test.addTest(appTest("music"))
file = "D:/test.html"
fil = open(file, "wb")
runner = HTMLTestRunner.HTMLTestRunner(
stream=fil,
title='安卓测试报告',
description='执行用例结果'
)
runner.run(test)
执行结果如下: