From fbc48da313b9f5ade1784a4430e3e1a4f025f391 Mon Sep 17 00:00:00 2001 From: JIAO Date: Thu, 10 Nov 2022 10:17:56 +0800 Subject: NordVPN,Surfshark-安卓自动化脚本提交 VisitWebsite脚本完善 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_automation/air_test_auto/app/NordVPN.py | 195 +++++++++++++++++++++ App_automation/air_test_auto/app/Surfshark.py | 151 ++++++++++++++++ .../air_test_auto/app/visitWebsite/visitWebsite.py | 60 ++++--- 3 files changed, 381 insertions(+), 25 deletions(-) create mode 100644 App_automation/air_test_auto/app/NordVPN.py create mode 100644 App_automation/air_test_auto/app/Surfshark.py 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' -- cgit v1.2.3