summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJIAO <JIAO@DESKTOP-Q4S6VOM>2022-11-10 10:17:56 +0800
committerJIAO <JIAO@DESKTOP-Q4S6VOM>2022-11-10 10:17:56 +0800
commitfbc48da313b9f5ade1784a4430e3e1a4f025f391 (patch)
tree2155476e296051dcd739a8a5ae3eabdb1c1d3a60
parent2c9bc1b4f93f9e1e5b1edca1057730f97d2657de (diff)
NordVPN,Surfshark-安卓自动化脚本提交
VisitWebsite脚本完善
-rw-r--r--App_automation/air_test_auto/app/NordVPN.py195
-rw-r--r--App_automation/air_test_auto/app/Surfshark.py151
-rw-r--r--App_automation/air_test_auto/app/visitWebsite/visitWebsite.py60
3 files changed, 381 insertions, 25 deletions
diff --git a/App_automation/air_test_auto/app/NordVPN.py b/App_automation/air_test_auto/app/NordVPN.py
new file mode 100644
index 0000000..a289598
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN.py
@@ -0,0 +1,195 @@
+# -*- encoding=utf8 -*-
+__author__ = "app"
+
+import os
+import sys
+
+rootDirectory = os.path.abspath(os.path.join(os.getcwd(), "../.."))
+App_automation = r'{}{}'.format(rootDirectory, "App_automation")
+sys.path.append(App_automation)
+from air_test_auto.app.visitWebsite.visitWebsite import *
+from air_test_auto.control import *
+from airtest.core.api import *
+import logging
+logger = logging.getLogger("airtest")
+logger.setLevel(logging.ERROR)
+auto_setup(__file__, logdir=True)
+from poco.drivers.android.uiautomation import AndroidUiautomationPoco
+poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
+auto_setup(__file__, devices=["android://127.0.0.1:5037/"+deviceid1], logdir=True)
+from airtest.report.report import *
+
+
+def open():
+ NordVPN = 'com.nordvpn.android'
+ d = device()
+ all_dev = d.list_app()
+ if NordVPN not in all_dev:
+ print("测试机未安装NordVPN,执行安装操作")
+ a1 = r'{}{}'.format(apk_dataDir, "/NordVPN.apk")
+ install(a1)
+ sleep(20)
+ start_app("com.nordvpn.android") # 打开app
+ sleep(20)
+ else:
+ stop_app("com.nordvpn.android") # 关闭app
+ start_app("com.nordvpn.android") # 打开app
+ sleep(20)
+ try:
+ snapshot(msg="NordVPN_open_success")
+ assert_equal(poco(name="主页").exists(), True, "NordVPN_open success")
+ print('NordVPN_open success')
+ print('The test case succeeded', flush=True)
+ return print('The test case succeeded')
+ except AssertionError:
+ print("NordVPN_open fail")
+ print("The test case failed", flush=True)
+ return print('The test case failed')
+
+
+
+def connectVpn():
+ try:
+ stop_app("com.nordvpn.android")
+ start_app("com.nordvpn.android")
+ sleep(10)
+ poco(text="快速连接").click()
+ if poco(text="确定").exists():
+ poco(text="确定").click()
+ sleep(60)
+ try:
+ snapshot(msg="NordVPN")
+ assert_equal(poco(text="断开连接").exists(), True, "NordVPN Connect successed")
+ print('NordVPN success')
+ print('The test case succeeded', flush=True)
+ return print('The test case succeeded')
+ except AssertionError:
+ print("NordVPN Connect failed")
+ print("The test case failed", flush=True)
+ return print('The test case failed')
+ finally:
+ a1 = r'{}{}'.format(report_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r"_test.html")
+
+
+def close():
+ stop_app("com.nordvpn.android")
+
+
+
+if __name__ == '__main__':
+ NordVPN = sys.argv
+ for i in NordVPN:
+ if deviceid1 == leidian2 or deviceid1 == xiaoyao or deviceid1 == MUMU or deviceid1 == leidian1:
+ if i == 'open':
+ open()
+ elif i == 'connectVpn':
+ connectVpn()
+ elif i == 'visitWebsite':
+ try:
+ open_browser()
+ access_facebook()
+ access_youtube()
+ access_twitter()
+ access_google()
+ finally:
+ a1 = r'{}{}'.format(report_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r".html")
+ elif i == 'close':
+ close()
+ else:
+ if i == 'connectVpn':
+ if packet_name == '':
+ connectVpn()
+ print("App操作执行成功,不需要捕包")
+ elif packet_name != '':
+ start()
+ connectVpn()
+ stop()
+ extract()
+ elif i == 'open':
+ if packet_name == '':
+ open()
+ print("App操作执行成功,不需要捕包")
+ elif packet_name != '':
+ start()
+ open()
+ stop()
+ extract()
+ elif i == 'visitWebsite':
+ if packet_name == '':
+ try:
+ open_browser()
+ access_facebook()
+ access_youtube()
+ access_twitter()
+ access_google()
+ print("App操作执行成功,不需要捕包")
+ finally:
+ a1 = r'{}{}'.format(report_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r".html")
+ elif packet_name != '':
+ start()
+ open_browser()
+ access_facebook()
+ access_youtube()
+ access_twitter()
+ access_google()
+ stop()
+ extract()
+ elif i == 'close':
+ if packet_name == '':
+ close()
+ print("App操作执行成功,不需要捕包")
+ elif packet_name != '':
+ start()
+ close()
+ stop()
+ extract()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/App_automation/air_test_auto/app/Surfshark.py b/App_automation/air_test_auto/app/Surfshark.py
new file mode 100644
index 0000000..7282be1
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark.py
@@ -0,0 +1,151 @@
+# -*- encoding=utf8 -*-
+__author__ = "app"
+
+import os
+import sys
+rootDirectory = os.path.abspath(os.path.join(os.getcwd(), "../.."))
+App_automation = r'{}{}'.format(rootDirectory, "App_automation")
+sys.path.append(App_automation)
+from air_test_auto.app.visitWebsite.visitWebsite import *
+from air_test_auto.control import *
+from airtest.core.api import *
+import logging
+logger = logging.getLogger("airtest")
+logger.setLevel(logging.ERROR)
+auto_setup(__file__, logdir=True)
+from poco.drivers.android.uiautomation import AndroidUiautomationPoco
+poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
+auto_setup(__file__, devices=["android://127.0.0.1:5037/"+deviceid1], logdir=True)
+from airtest.report.report import *
+
+
+def open():
+ Surfshark = 'com.nordvpn.android'
+ d = device()
+ all_dev = d.list_app()
+ if Surfshark not in all_dev:
+ print("测试机未安装NordVPN,执行安装操作")
+ a1 = r'{}{}'.format(apk_dataDir, "/NordVPN.apk")
+ install(a1)
+ sleep(20)
+ start_app("com.surfshark.vpnclient.android") # 打开app
+ sleep(20)
+ else:
+ stop_app("com.surfshark.vpnclient.android") # 关闭app
+ start_app("com.surfshark.vpnclient.android") # 打开app
+ sleep(20)
+ try:
+ snapshot(msg="Surfshark_open_success")
+ assert_equal(poco(text="位置").exists(), True, "Surfshark_open success")
+ print('Surfshark_open success')
+ print('The test case succeeded', flush=True)
+ return print('The test case succeeded')
+ except AssertionError:
+ print("Surfshark_open fail")
+ print("The test case failed", flush=True)
+ return print('The test case failed')
+
+
+
+def connectVpn():
+ try:
+ stop_app("com.surfshark.vpnclient.android")
+ start_app("com.surfshark.vpnclient.android")
+ sleep(10)
+ if poco(text="快速连接").exists():
+ poco(text="快速连接").click()
+ if poco(text="确定").exists():
+ poco(text="确定").click()
+ sleep(60)
+ try:
+ snapshot(msg="Surfshark")
+ assert_equal(poco(text="断开连接").exists(), True, "Surfshark Connect successed")
+ print('Surfshark success')
+ print('The test case succeeded', flush=True)
+ return print('The test case succeeded')
+ except AssertionError:
+ print("Surfshark Connect failed")
+ print("The test case failed", flush=True)
+ return print('The test case failed')
+ finally:
+ a1 = r'{}{}'.format(report_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r"_test.html")
+
+
+def close():
+ stop_app("com.surfshark.vpnclient.android")
+
+
+
+if __name__ == '__main__':
+ Surfshark = sys.argv
+ for i in Surfshark:
+ if deviceid1 == leidian2 or deviceid1 == xiaoyao or deviceid1 == MUMU or deviceid1 == leidian1:
+ if i == 'open':
+ open()
+ elif i == 'connectVpn':
+ connectVpn()
+ elif i == 'visitWebsite':
+ try:
+ # open_browser()
+ # access_facebook()
+ access_youtube()
+ access_twitter()
+ access_google()
+ finally:
+ a1 = r'{}{}'.format(report_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r".html")
+ elif i == 'close':
+ close()
+ else:
+ if i == 'connectVpn':
+ if packet_name == '':
+ connectVpn()
+ print("App操作执行成功,不需要捕包")
+ elif packet_name != '':
+ start()
+ connectVpn()
+ stop()
+ extract()
+ elif i == 'open':
+ if packet_name == '':
+ open()
+ print("App操作执行成功,不需要捕包")
+ elif packet_name != '':
+ start()
+ open()
+ stop()
+ extract()
+ elif i == 'visitWebsite':
+ if packet_name == '':
+ try:
+ open_browser()
+ access_facebook()
+ access_youtube()
+ access_twitter()
+ access_google()
+ print("App操作执行成功,不需要捕包")
+ finally:
+ a1 = r'{}{}'.format(report_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r".html")
+ elif packet_name != '':
+ start()
+ open_browser()
+ access_facebook()
+ access_youtube()
+ access_twitter()
+ access_google()
+ stop()
+ extract()
+ elif i == 'close':
+ if packet_name == '':
+ close()
+ print("App操作执行成功,不需要捕包")
+ elif packet_name != '':
+ start()
+ close()
+ stop()
+ extract()
diff --git a/App_automation/air_test_auto/app/visitWebsite/visitWebsite.py b/App_automation/air_test_auto/app/visitWebsite/visitWebsite.py
index bacf9cf..979c08b 100644
--- a/App_automation/air_test_auto/app/visitWebsite/visitWebsite.py
+++ b/App_automation/air_test_auto/app/visitWebsite/visitWebsite.py
@@ -18,28 +18,32 @@ auto_setup(__file__, devices=["android://127.0.0.1:5037/" + deviceid1], logdir=T
from airtest.report.report import *
def open_browser():
- chrome = 'com.android.chrome'
- d = device()
- all_dev = d.list_app()
- #print(all_dev)
- if chrome in all_dev:
- print("测试机已安装chrome")
- start_app(chrome)
- else:
- stop_app("com.android.vending")
- start_app("com.android.vending")
- sleep(10)
- poco(text="搜索应用和游戏").click()
- text("chrome",serach=True)
- sleep(5)
- poco(text="安装").click()
- sleep(120)
+ try:
+ chrome = 'com.android.chrome'
+ d = device()
+ all_dev = d.list_app()
+ if chrome in all_dev:
+ print("测试机已安装chrome")
+ start_app(chrome)
+ else:
+ stop_app("com.android.vending")
+ start_app("com.android.vending")
+ sleep(10)
+ poco(text="搜索应用和游戏").click()
+ text("chrome",serach=True)
+ sleep(5)
+ poco(text="安装").click()
+ sleep(120)
+ finally:
+ a1 = r'{}{}'.format(apk_dataDir, "/" + report_name)
+ rp = LogToHtml(__file__, export_dir=a1, lang='zh', plugins=["poco.utils.airtest.report"])
+ rp.report(output_file=report_name + "_" + r"_test.html")
def access_facebook():
try:
- clear_app("com.android.chrome")
+ stop_app("com.android.chrome")
start_app("com.android.chrome")
- sleep(10)
+ sleep(30)
if poco(text="接受并继续").exists():
poco(text="接受并继续").click()
sleep(5)
@@ -49,6 +53,8 @@ def access_facebook():
if poco(text="不用了,谢谢").exists():
poco(text="不用了,谢谢").click()
sleep(2)
+ if poco(text="在不登录帐号的情况下使用").exists():
+ poco(text="在不登录帐号的情况下使用").click()
if poco(text="继续使用 GOOGLE").exists():
poco(text="继续使用 GOOGLE").click()
if poco(text="继续使用 Google").exists():
@@ -76,7 +82,7 @@ def access_facebook():
def access_youtube():
try:
- clear_app("com.android.chrome")
+ stop_app("com.android.chrome")
start_app("com.android.chrome")
sleep(10)
if poco(text="接受并继续").exists():
@@ -100,7 +106,7 @@ def access_youtube():
sleep(120)
try:
snapshot(msg="access youtube success")
- assert_not_equal(Template(r"tpl1658374450724.png", record_pos=(-0.376, -0.672), resolution=(720, 1280)), "access youtube success")
+ assert_equal(poco(text="在 YouTube 中搜索").exists(), True, "access youtube succeeded.")
print('access youtube success')
print('The test case succeeded',flush=True)
return 'The test case succeeded'
@@ -115,7 +121,7 @@ def access_youtube():
def access_twitter():
try:
- clear_app("com.android.chrome")
+ stop_app("com.android.chrome")
start_app("com.android.chrome")
sleep(10)
if poco(text="接受并继续").exists():
@@ -139,7 +145,7 @@ def access_twitter():
sleep(120)
try:
snapshot(msg="access twitter_deny success")
- assert_not_equal(Template(r"tpl1658374415457.png", record_pos=(-0.322, -0.083), resolution=(720, 1280)), "access twitter success")
+ assert_equal(poco(text="你的趋势").exists(), True, "access twitter succeeded.")
print('access twitter success')
print('The test case succeeded',flush=True)
return 'The test case succeeded'
@@ -154,7 +160,7 @@ def access_twitter():
def access_google():
try:
- clear_app("com.android.chrome")
+ stop_app("com.android.chrome")
start_app("com.android.chrome")
sleep(10)
if poco(text="接受并继续").exists():
@@ -174,11 +180,15 @@ def access_google():
poco(desc="首页").click()
sleep(2)
poco(text="搜索或输入网址").click()
- text("www.google.com",serach=True)
+ text("www.google.com.hk",serach=True)
+ if poco(text="继续阅读").exists():
+ poco(text="继续阅读").click()
+ sleep(2)
+ poco(text="全部拒绝").click()
sleep(120)
try:
snapshot(msg="access google_deny success")
- assert_not_equal(Template(r"tpl1658374364689.png", record_pos=(0.386, -0.675), resolution=(720, 1280)), "access google success")
+ assert_equal(poco(text="Google 搜索").exists(), True, "access google succeeded.")
print('access google success')
print('The test case succeeded',flush=True)
return 'The test case succeeded'