summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJIAO <JIAO@DESKTOP-Q4S6VOM>2022-11-10 16:50:23 +0800
committerJIAO <JIAO@DESKTOP-Q4S6VOM>2022-11-10 16:50:23 +0800
commit718f115393beca74422db9355323d0b31fdab184 (patch)
tree48f5f31d667ad0315b3376714d59117d81f51cc7
parentfbc48da313b9f5ade1784a4430e3e1a4f025f391 (diff)
NordVPN,Surfshark-ios自动化脚本提交
-rw-r--r--App_automation/air_test_auto/app/NordVPN/NordVPN.py195
-rw-r--r--App_automation/air_test_auto/app/NordVPN/NordVPN_ios.py257
-rw-r--r--App_automation/air_test_auto/app/NordVPN/tpl1665468348186.pngbin0 -> 19642 bytes
-rw-r--r--App_automation/air_test_auto/app/NordVPN/tpl1665468418365.pngbin0 -> 22697 bytes
-rw-r--r--App_automation/air_test_auto/app/NordVPN/tpl1668061120762.pngbin0 -> 14767 bytes
-rw-r--r--App_automation/air_test_auto/app/NordVPN/tpl1668064857298.pngbin0 -> 6243 bytes
-rw-r--r--App_automation/air_test_auto/app/Surfshark/Surfshark.py151
-rw-r--r--App_automation/air_test_auto/app/Surfshark/Surfshark_ios.py254
-rw-r--r--App_automation/air_test_auto/app/Surfshark/tpl1665468348186.pngbin0 -> 19642 bytes
-rw-r--r--App_automation/air_test_auto/app/Surfshark/tpl1665468418365.pngbin0 -> 22697 bytes
-rw-r--r--App_automation/air_test_auto/app/Surfshark/tpl1668049832890.pngbin0 -> 5106 bytes
-rw-r--r--App_automation/air_test_auto/app/Surfshark/tpl1668050745408.pngbin0 -> 16974 bytes
-rw-r--r--App_automation/air_test_auto/app/Surfshark/tpl1668050817665.pngbin0 -> 13396 bytes
-rw-r--r--App_automation/air_test_auto/app/Surfshark/tpl1668061120762.pngbin0 -> 14767 bytes
14 files changed, 857 insertions, 0 deletions
diff --git a/App_automation/air_test_auto/app/NordVPN/NordVPN.py b/App_automation/air_test_auto/app/NordVPN/NordVPN.py
new file mode 100644
index 0000000..a289598
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN/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/NordVPN/NordVPN_ios.py b/App_automation/air_test_auto/app/NordVPN/NordVPN_ios.py
new file mode 100644
index 0000000..0ca24ec
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN/NordVPN_ios.py
@@ -0,0 +1,257 @@
+__author__ = "JIAO"
+
+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 airtest.core.api import *
+import logging
+logger = logging.getLogger("airtest")
+logger.setLevel(logging.ERROR)
+from air_test_auto.control import *
+auto_setup(__file__,logdir=True)
+init_device(platform="IOS",uuid=deviceid1)
+from poco.drivers.ios import iosPoco
+poco = iosPoco()
+from airtest.report.report import *
+
+
+def open():
+ clearApp()
+ start_app("com.apple.Preferences") # 打开设置
+ sleep(5)
+ swipe([570, 494], [578, 1098])
+ sleep(2)
+ poco(name="搜索").click()
+ text("NordVPN")
+ sleep(10)
+ if exists(Template(r"tpl1668064857298.png", record_pos=(-0.429, -0.79), resolution=(828, 1792))):
+ print("app已安装,不需要重新安装")
+ stop_app("com.nordvpn.NordVPN") # 关闭app
+ start_app("com.nordvpn.NordVPN") # 打开app
+ sleep(5)
+ else:
+ start_app("com.apple.AppStore") # 打开app store
+ sleep(20)
+ poco(name="Search").click()
+ poco(name="SearchField").click()
+ text("NordVPN")
+ sleep(5)
+ touch(Template(r"tpl1668064857298.png", record_pos=(-0.429, -0.79), resolution=(828, 1792)))
+ sleep(10)
+ if poco(name="get").exists():
+ poco(name="get").click()
+ sleep(20)
+ poco(name="安装").click()
+ sleep(2)
+ poco(name="SecureTextField").click()
+ sleep(2)
+ text("Test12345678")
+ sleep(2)
+ poco(name="登录").click()
+ sleep(180)
+ if poco(name="open").exists():
+ print("app安装完成")
+ else:
+ print("app安装失败")
+ else:
+ poco(name="re-download").click()
+ sleep(180)
+ if poco(name="open").exists():
+ print("app安装完成")
+ start_app("com.nordvpn.NordVPN")
+ else:
+ print("app安装失败")
+ try:
+ snapshot(msg="NordVPN_open")
+ assert_equal(poco(name="标签栏").exists(), True, "NordVPN Connect successed")
+ print('NordVPN_open succeeded')
+ print('The test case succeeded', flush=True)
+ return print('The test case succeeded')
+ except AssertionError:
+ print("NordVPN_open failed")
+ print("The test case faileded", flush=True)
+ return print('The test case faileded')
+
+def connectVpn():
+ try:
+ stop_app("com.nordvpn.NordVPN")
+ start_app("com.nordvpn.NordVPN")
+ sleep(10)
+ poco(name="快速连接").click()
+ sleep(60)
+ try:
+ snapshot(msg="NordVPN")
+ assert_equal(poco(name="断开连接").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.NordVPN")
+ start_app("com.nordvpn.NordVPN")
+ sleep(10)
+ if poco(name="断开连接").exists():
+ poco(name="断开连接").click()
+ sleep(2)
+ stop_app("com.nordvpn.NordVPN")
+
+def access_facebook():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("www.facebook.com")
+ sleep(120)
+ try:
+ snapshot(msg="access facebook success")
+ assert_equal(poco(name="新建帐户").exists(),True,"facebook_access success")
+ print('access facebook success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access facebook failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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_twitter():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("https://twitter.com")
+ sleep(120)
+ try:
+ snapshot(msg="access twitter success")
+ assert_equal(poco(name="你的趋势").exists(),True,"twitter_access success")
+ print('access twitter success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access twitter failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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_youtube():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("www.youtube.com")
+ sleep(120)
+ try:
+ snapshot(msg="access youtube success")
+ assert_equal(poco(name="在 YouTube 中搜索").exists(),True,"youtube_access success")
+ print('access youtube success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access youtube failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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_google():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("www.google.com.hk")
+ sleep(120)
+ try:
+ snapshot(msg="access google success")
+ assert_equal(poco(name="Google").exists(),True,"google_access success")
+ print('access google success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access google failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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 clearApp():
+ keyevent("HOME")
+ touch(Template(r"tpl1665468348186.png", record_pos=(-0.396, 0.657), resolution=(1170, 2532)))
+ if exists(Template(r"tpl1668061120762.png", record_pos=(0.207, 0.322), resolution=(828, 1792))):
+ touch(Template(r"tpl1668061120762.png", record_pos=(0.207, 0.322), resolution=(828, 1792)))
+ if exists(Template(r"tpl1665468418365.png", record_pos=(-0.001, 0.756), resolution=(1170, 2532))):
+ touch(Template(r"tpl1665468418365.png", record_pos=(-0.001, 0.756), resolution=(1170, 2532)))
+ for i in range(10):
+ swipe([855, 1683], [852, 796])
+
+if __name__ == '__main__':
+ gmail = sys.argv
+ for i in gmail:
+ if i == 'open':
+ open()
+ if i == 'connectVpn':
+ connectVpn()
+ if i == 'close':
+ close()
+ if i == 'visitWebsite':
+ try:
+ 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")
+ if i == 'all':
+ open()
+ connectVpn()
+ access_facebook()
+ access_twitter()
+ access_youtube()
+ access_google()
+ close()
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/App_automation/air_test_auto/app/NordVPN/tpl1665468348186.png b/App_automation/air_test_auto/app/NordVPN/tpl1665468348186.png
new file mode 100644
index 0000000..db2dbb4
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN/tpl1665468348186.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/NordVPN/tpl1665468418365.png b/App_automation/air_test_auto/app/NordVPN/tpl1665468418365.png
new file mode 100644
index 0000000..47144db
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN/tpl1665468418365.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/NordVPN/tpl1668061120762.png b/App_automation/air_test_auto/app/NordVPN/tpl1668061120762.png
new file mode 100644
index 0000000..486d07e
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN/tpl1668061120762.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/NordVPN/tpl1668064857298.png b/App_automation/air_test_auto/app/NordVPN/tpl1668064857298.png
new file mode 100644
index 0000000..33d22b7
--- /dev/null
+++ b/App_automation/air_test_auto/app/NordVPN/tpl1668064857298.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/Surfshark/Surfshark.py b/App_automation/air_test_auto/app/Surfshark/Surfshark.py
new file mode 100644
index 0000000..5b5cacb
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/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/Surfshark/Surfshark_ios.py b/App_automation/air_test_auto/app/Surfshark/Surfshark_ios.py
new file mode 100644
index 0000000..7e897b5
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/Surfshark_ios.py
@@ -0,0 +1,254 @@
+__author__ = "JIAO"
+
+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 airtest.core.api import *
+import logging
+logger = logging.getLogger("airtest")
+logger.setLevel(logging.ERROR)
+from air_test_auto.control import *
+auto_setup(__file__,logdir=True)
+init_device(platform="IOS",uuid=deviceid1)
+from poco.drivers.ios import iosPoco
+poco = iosPoco()
+from airtest.report.report import *
+
+
+def open():
+ clearApp()
+ start_app("com.apple.Preferences") # 打开设置
+ sleep(5)
+ swipe([570, 494], [578, 1098])
+ sleep(2)
+ poco(name="搜索").click()
+ text("Surfshark")
+ sleep(10)
+ if exists(Template(r"tpl1668049832890.png", record_pos=(-0.425, -0.792), resolution=(828, 1792))):
+ print("app已安装,不需要重新安装")
+ stop_app("com.surfshark.vpnclient.ios") # 关闭app
+ start_app("com.surfshark.vpnclient.ios") # 打开app
+ sleep(5)
+ else:
+ start_app("com.apple.AppStore") # 打开app store
+ sleep(20)
+ poco(name="Search").click()
+ poco(name="SearchField").click()
+ text("Surfshark")
+ sleep(5)
+ touch(Template(r"tpl1668049832890.png", record_pos=(-0.425, -0.792), resolution=(828, 1792)))
+ sleep(10)
+ if poco(name="get").exists():
+ poco(name="get").click()
+ sleep(20)
+ poco(name="安装").click()
+ sleep(2)
+ poco(name="SecureTextField").click()
+ sleep(2)
+ text("Test12345678")
+ sleep(2)
+ poco(name="登录").click()
+ sleep(180)
+ if poco(name="open").exists():
+ print("app安装完成")
+ else:
+ print("app安装失败")
+ else:
+ poco(name="re-download").click()
+ sleep(180)
+ if poco(name="open").exists():
+ print("app安装完成")
+ start_app("com.surfshark.vpnclient.ios")
+ else:
+ print("app安装失败")
+ try:
+ snapshot(msg="surfshark_open")
+ assert_equal(poco(name="app.tab_bar.surfshark").exists(), True, "Surfshark Connect successed")
+ print('surfshark_open succeeded')
+ print('The test case succeeded', flush=True)
+ return print('The test case succeeded')
+ except AssertionError:
+ print("surfshark_open failed")
+ print("The test case faileded", flush=True)
+ return print('The test case faileded')
+
+def connectVpn():
+ try:
+ stop_app("com.surfshark.vpnclient.ios")
+ start_app("com.surfshark.vpnclient.ios")
+ sleep(10)
+ touch(Template(r"tpl1668050745408.png", record_pos=(-0.075, 0.368), resolution=(828, 1792)))
+ sleep(60)
+ try:
+ snapshot(msg="Surfshark")
+ assert_exists(Template(r"tpl1668050817665.png", record_pos=(0.249, 0.789), resolution=(828, 1792)), "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.ios")
+ start_app("com.surfshark.vpnclient.ios")
+ sleep(10)
+ if exists(Template(r"tpl1668050817665.png", record_pos=(0.249, 0.789), resolution=(828, 1792))):
+ touch(Template(r"tpl1668050817665.png", record_pos=(0.249, 0.789), resolution=(828, 1792)))
+ sleep(5)
+ stop_app("com.surfshark.vpnclient.ios")
+
+def access_facebook():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("www.facebook.com")
+ sleep(120)
+ try:
+ snapshot(msg="access facebook success")
+ assert_equal(poco(name="新建帐户").exists(),True,"facebook_access success")
+ print('access facebook success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access facebook failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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_twitter():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("https://twitter.com")
+ sleep(120)
+ try:
+ snapshot(msg="access twitter success")
+ assert_equal(poco(name="你的趋势").exists(),True,"twitter_access success")
+ print('access twitter success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access twitter failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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_youtube():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("www.youtube.com")
+ sleep(120)
+ try:
+ snapshot(msg="access youtube success")
+ assert_equal(poco(name="在 YouTube 中搜索").exists(),True,"youtube_access success")
+ print('access youtube success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access youtube failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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_google():
+ try:
+ stop_app("com.google.chrome.ios")
+ start_app("com.google.chrome.ios")
+ sleep(10)
+ poco(label="显示标签页").click()
+ poco(name="创建新的标签页。").click()
+ poco(name="搜索或输入网址").click()
+ text("www.google.com.hk")
+ sleep(120)
+ try:
+ snapshot(msg="access google success")
+ assert_equal(poco(name="Google").exists(),True,"google_access success")
+ print('access google success')
+ print('The test case succeeded',flush=True)
+ return 'The test case succeeded'
+ except AssertionError:
+ print("access google failed")
+ print("The test case failed",flush=True)
+ return 'The test case failed'
+ 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 clearApp():
+ keyevent("HOME")
+ touch(Template(r"tpl1665468348186.png", record_pos=(-0.396, 0.657), resolution=(1170, 2532)))
+ if exists(Template(r"tpl1668061120762.png", record_pos=(0.207, 0.322), resolution=(828, 1792))):
+ touch(Template(r"tpl1668061120762.png", record_pos=(0.207, 0.322), resolution=(828, 1792)))
+ if exists(Template(r"tpl1665468418365.png", record_pos=(-0.001, 0.756), resolution=(1170, 2532))):
+ touch(Template(r"tpl1665468418365.png", record_pos=(-0.001, 0.756), resolution=(1170, 2532)))
+ for i in range(10):
+ swipe([855, 1683], [852, 796])
+
+if __name__ == '__main__':
+ gmail = sys.argv
+ for i in gmail:
+ if i == 'open':
+ open()
+ if i == 'connectVpn':
+ connectVpn()
+ if i == 'close':
+ close()
+ if i == 'visitWebsite':
+ try:
+ 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")
+ if i == 'all':
+ open()
+ connectVpn()
+ access_facebook()
+ access_twitter()
+ access_youtube()
+ access_google()
+ close()
+
+
+
+
+
+
+
+
+
+
diff --git a/App_automation/air_test_auto/app/Surfshark/tpl1665468348186.png b/App_automation/air_test_auto/app/Surfshark/tpl1665468348186.png
new file mode 100644
index 0000000..db2dbb4
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/tpl1665468348186.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/Surfshark/tpl1665468418365.png b/App_automation/air_test_auto/app/Surfshark/tpl1665468418365.png
new file mode 100644
index 0000000..47144db
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/tpl1665468418365.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/Surfshark/tpl1668049832890.png b/App_automation/air_test_auto/app/Surfshark/tpl1668049832890.png
new file mode 100644
index 0000000..64b5efd
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/tpl1668049832890.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/Surfshark/tpl1668050745408.png b/App_automation/air_test_auto/app/Surfshark/tpl1668050745408.png
new file mode 100644
index 0000000..8d25e6a
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/tpl1668050745408.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/Surfshark/tpl1668050817665.png b/App_automation/air_test_auto/app/Surfshark/tpl1668050817665.png
new file mode 100644
index 0000000..aa23047
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/tpl1668050817665.png
Binary files differ
diff --git a/App_automation/air_test_auto/app/Surfshark/tpl1668061120762.png b/App_automation/air_test_auto/app/Surfshark/tpl1668061120762.png
new file mode 100644
index 0000000..486d07e
--- /dev/null
+++ b/App_automation/air_test_auto/app/Surfshark/tpl1668061120762.png
Binary files differ