diff --git a/framework/fileStore/BrowserPerformanceVariables.py b/framework/fileStore/BrowserPerformanceVariables.py index 3c0bdc85..124b6307 100644 --- a/framework/fileStore/BrowserPerformanceVariables.py +++ b/framework/fileStore/BrowserPerformanceVariables.py @@ -16,20 +16,32 @@ # See the License for the specific language governing permissions and # limitations under the License. ######################################################################### -css3_test_url="https://css3test.com/#css3-background" -css3_test_subcategory_list = ["Animations Level 1", "Backgrounds and Borders Level 3", "Backgrounds and Borders Level 4", "Basic User Interface Level 3", "Basic User Interface Level 4", "Box Alignment Level 3", "Cascading and Inheritance Level 3", "Cascading and Inheritance Level 4", "Compositing and Blending Level 1", "Custom Properties for Cascading Variables Level 1", "Filter Effects Level 1", "Flexible Box Layout Level 1", "Fonts Level 3", "Fonts Level 4", "Generated Content Level 3", "Grid Layout Level 1", "Grid Layout Level 2", "Grid Layout Level 3", "Images Level 3", "Lists Level 3", "Masking Level 1", "Media Queries Level 3", "Media Queries Level 4", "Media Queries Level 5", "Pointer Events Level 1", "Pointer Events Level 3", "Positioned Layout Level 3", "Ruby Layout Level 1", "Scroll Snap Level 1", "Shadow Parts", "Shapes Level 1", "SVG 2 Coordinate Systems, Transformations and Units", "SVG 2 Geometry Properties", "SVG 2 Paint Servers", "SVG 2 Painting", "SVG 2 Scripting and Interactivity", "SVG 2 Text", "Text Decoration Level 3", "Text Decoration Level 4", "Transforms Level 1", "Transforms Level 2", "Transitions", "Will Change Level 1"] -octane_test_url ="https://chromium.github.io/octane/?auto=1" + +app_download_url = "" + +strike_app_bundle_name = "" + +octane_app_bundle_name = "" octane_test_subcategory_list = ["Crypto","EarleyBoyer","Splay","SplayLatency","pdf.js","CodeLoad"] + +animation_app_bundle_name = "" + +kraken_app_bundle_name = "" + +smashcat_app_bundle_name = "" + +motion_app_bundle_name = "" + +speedometer_app_bundle_name = "" + +css3_app_bundle_name = "" +css3_test_subcategory_list = ["Animations Level 1", "Backgrounds and Borders Level 3", "Backgrounds and Borders Level 4", "Basic User Interface Level 3", "Basic User Interface Level 4", "Box Alignment Level 3", "Cascading and Inheritance Level 3", "Cascading and Inheritance Level 4", "Compositing and Blending Level 1", "Custom Properties for Cascading Variables Level 1", "Filter Effects Level 1", "Flexible Box Layout Level 1", "Fonts Level 3", "Fonts Level 4", "Generated Content Level 3", "Grid Layout Level 1", "Grid Layout Level 2", "Grid Layout Level 3", "Images Level 3", "Lists Level 3", "Masking Level 1", "Media Queries Level 3", "Media Queries Level 4", "Media Queries Level 5", "Pointer Events Level 1", "Pointer Events Level 3", "Positioned Layout Level 3", "Ruby Layout Level 1", "Scroll Snap Level 1", "Shadow Parts", "Shapes Level 1", "SVG 2 Coordinate Systems, Transformations and Units", "SVG 2 Geometry Properties", "SVG 2 Paint Servers", "SVG 2 Painting", "SVG 2 Scripting and Interactivity", "SVG 2 Text", "Text Decoration Level 3", "Text Decoration Level 4", "Transforms Level 1", "Transforms Level 2", "Transitions", "Will Change Level 1"] + + html5_test_url ="https://html5test.com/" html5_test_subcategory_list = ["Parsing rules","Elements","Forms","Web Components","Location and Orientation","Communication","Streams","Performance","Security","Payments","Video","Audio","Streaming","Animation","Files"] sunspider_url = "https://webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html" sunspider_test_subcategory_list = ["access","bitops","3bit-bits-in-byte","bits-in-byte","bitwise-and","nsieve-bits","controlflow","recursive","crypto","math"] -strike_tool_url = "https://strike.lightningjs.io/" -motionmark_test_url = "https://browserbench.org/MotionMark1.2/" -animation_benchmark_test_url = "https://themaninblue.com/experiment/AnimationBenchmark/canvas/" -speedometer_test_url = "https://browserbench.org/Speedometer3.1/" -smashcat_test_url = "http://www.smashcat.org/av/canvas_test/" -kraken_test_url = "https://mozilla.github.io/krakenbenchmark.mozilla.org/kraken-1.1/driver.html" #https://askubuntu.com/questions/432255/what-is-the-display-environment-variable display_variable=":0" #Give the path where the chromedriver executable is available diff --git a/framework/fileStore/rdkv_performancelib.py b/framework/fileStore/rdkv_performancelib.py index 972044b5..73466991 100644 --- a/framework/fileStore/rdkv_performancelib.py +++ b/framework/fileStore/rdkv_performancelib.py @@ -80,6 +80,44 @@ def init_module(libobj,port,deviceInfo): print("\nException Occurred while getting MAC \n") print(e) +#------------------------------------------------------------------- +#GET THE WEBINSPECT PORT FROM THE DEVICE LOG VIA SSH +#------------------------------------------------------------------- +def get_webinspect_port(): + try: + # Get SSH parameters from configuration file + ssh_params = rdkservice_getSSHParams(libObj.realpath, deviceIP) + if ssh_params == "" or ssh_params == "{}": + raise Exception("Failed to get SSH parameters from configuration") + + ssh_params_dict = json.loads(ssh_params) + ssh_method = ssh_params_dict.get("ssh_method") + credentials = ssh_params_dict.get("credentials") + + if not ssh_method or not credentials: + raise Exception("SSH method or credentials not found in configuration") + + # Execute command on DUT to get inspector port from dacapp.log + cmd = "cat /opt/logs/dacapp.log | grep 'inspector port set to'" + output = rdkservice_getRequiredLog(ssh_method, credentials, cmd) + + if output == "EXCEPTION" or output == "": + raise Exception("Failed to retrieve log output from DUT") + + # Parse the port number from output + for line in output.splitlines(): + match = re.search(r'inspector port set to\s+(\d+)', line, re.IGNORECASE) + if match: + return match.group(1) + + # If no port found in output + raise Exception("Inspector port not found in dacapp.log output") + + except Exception as e: + print("Unable to get webinspect port from dacapp.log:", e) + raise + + #--------------------------------------------------------------- #POST CURL REQUEST USING PYTHON REQUESTS #--------------------------------------------------------------- @@ -343,7 +381,34 @@ def rdkservice_getBrowserScore_CSS3(): try: browser_score_dict = {} browser_subcategory_list = BrowserPerformanceVariables.css3_test_subcategory_list - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) + driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -386,7 +451,33 @@ def rdkservice_getBrowserScore_Octane(): try: browser_score_dict = {} browser_subcategory_list = BrowserPerformanceVariables.octane_test_subcategory_list - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) + driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -478,8 +569,32 @@ def rdkservice_getBrowserScore_HTML5(): try: browser_score_dict = {} browser_subcategory_list = BrowserPerformanceVariables.html5_test_subcategory_list - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' - print("url:",webinspectURL) + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -524,7 +639,32 @@ def rdkservice_getBrowserScore_SunSpider(): browser_score = '' browser_score_dict = {} browser_subcategory_list = BrowserPerformanceVariables.sunspider_test_subcategory_list - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(60) @@ -1100,7 +1240,33 @@ def rdkservice_getBrowserScore_AnimationBenchmark(): fps_list = [] try: browser_score_dict = {} - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) + driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(20) @@ -1157,7 +1323,33 @@ def get_graphical_plugins(conf_file): def rdkservice_getBrowserScore_Speedometer(): try: browser_score_dict = {} - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) + driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -1183,7 +1375,33 @@ def rdkservice_getBrowserScore_Speedometer(): def rdkservice_getBrowserScore_MotionMark(): try: browser_score_dict = {} - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) + driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -1216,7 +1434,33 @@ def rdkservice_getBrowserScore_MotionMark(): def rdkservice_getBrowserScore_Smashcat(): try: browser_score_dict = {} - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) + driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -1256,7 +1500,32 @@ def rdkservice_getBrowserScore_Smashcat(): def rdkservice_getBrowserScore_Kraken(): try: browser_score_dict = {} - webinspectURL = 'http://'+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/Main.html?ws='+deviceIP+':'+BrowserPerformanceVariables.webinspect_port+'/socket/1/1/WebPage' + # Get webinspect port with error handling + try: + webinspect_port = get_webinspect_port() + print("\nWebinspect port retrieved: ", webinspect_port) + except Exception as e: + print("\nFailed to retrieve webinspect port:", e) + browser_score_dict["main_score"] = "Unable to get the browser score" + browser_score_dict = json.dumps(browser_score_dict) + return browser_score_dict + + webinspectURL = 'http://'+deviceIP+':'+webinspect_port+'/Main.html?ws='+deviceIP+':'+webinspect_port+'/socket/1/1/WebPage' + print("\nWebinspect URL:", webinspectURL) + + # Test basic connectivity before opening browser + try: + print("\nTesting connection to webinspect server...") + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(5) + result = sock.connect_ex((deviceIP, int(webinspect_port))) + sock.close() + if result == 0: + print("Connection to webinspect server successful") + else: + print("Connection to webinspect server failed (code: %d)" % result) + except Exception as e: + print("Connection test error:", e) driver = openChromeBrowser(webinspectURL); if driver != "EXCEPTION OCCURRED": time.sleep(10) @@ -1980,3 +2249,62 @@ def setPS_value(video_test_url): except Exception as e: print("Failed to set the PersistentStore value: ", e) return None + +#----------------------------------------------------------------------------------------- +#TO PRESS KEYS IN UI USING APP MANAGER +#----------------------------------------------------------------------------------------- +def browsertest_keypress(obj,app_name,keys): + + key_navigate = keys + result="FAILURE" + param='[' + index=0 + expectedResult= "SUCCESS" + print(f"Getting the app instance id of {app_name}") + tdkTestObj = obj.createTestStep('rdkservice_getValue') + tdkTestObj.addParameter("method","org.rdk.AppManager.getLoadedApps") + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResultDetails() + status = tdkTestObj.getResult() + if status == expectedResult and app_name in result: + appinstanceid="" + result = ast.literal_eval(result) + for item in result: + if isinstance(item, dict) and item.get("appId") == app_name: + appinstanceid = item.get("appInstanceId") + if appinstanceid != "": + print("####App instance id of the launched app is: ", appinstanceid) + for key in key_navigate: + if ":" in key: + param = param + '{\\"keyCode\\": ' + key + ',\\"modifiers\\": ['+ key.split(":")[0] +'],\\"delay\\":0.1}' + else: + param = param + '{\\"keyCode\\": ' + key + ',\\"modifiers\\": [],\\"delay\\":0.1}' + if index != (len(key_navigate)-1): + param = param + ',' + else: + param = param + ']' + index +=1 + + params = '{"client":' + appinstanceid + ',"keys":"{\\"keys\\":'+ param + '}"' + + + tdkTestObj = obj.createTestStep('rdkservice_setValue') + tdkTestObj.addParameter("method","org.rdk.RDKWindowManager.generateKey") + tdkTestObj.addParameter("value",params) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if expectedResult in result: + tdkTestObj.setResultStatus("SUCCESS") + print("SUCCESS: Navigated through UI and started the test") + result = "SUCCESS" + else: + tdkTestObj.setResultStatus("FAILURE") + print("FAILURE : Failed to start the test by navigating through UI") + else: + print("Failed to get appinstanceId") + tdkTestObj.setResultStatus("FAILURE") + else: + print("Failed to get the loaded apps") + tdkTestObj.setResultStatus("FAILURE") + return result + \ No newline at end of file diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Animation_FPS.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Animation_FPS.py index 1c9b61f1..b4ad302d 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Animation_FPS.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Animation_FPS.py @@ -91,6 +91,7 @@ import rdkv_performancelib import BrowserPerformanceVariables from StabilityTestUtility import * +import json #Test component to be tested obj = tdklib.TDKScriptingLibrary("rdkv_performance","1",standAlone=True) @@ -115,111 +116,53 @@ expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.animation_benchmark_test_url - print("\n Check Pre conditions") - sub_category_failure = False - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)) - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - #Need to revert the values since we are changing plugin status - revert="YES" - set_status = set_pre_requisites(obj) - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE" - else: - status = "FAILURE" + app_bundle_name=BrowserPerformanceVariables.animation_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url + app_name = "com.rdkcentral.animation" + + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) if status == "SUCCESS": - print("\nPre conditions for the test are set successfully") - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") + time.sleep(20) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_AnimationBenchmark') tdkTestObj.executeTestCase(expectedResult) - current_url = tdkTestObj.getResultDetails() + browser_score_dict = json.loads(tdkTestObj.getResultDetails()) result = tdkTestObj.getResult() - if current_url != None and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("Current URL:",current_url) - print("\nSet test URL") - - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",browser_test_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if expectedResult in result: - time.sleep(10) - - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - new_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("URL(",new_url,") is set successfully") - - time.sleep(20) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_AnimationBenchmark') - tdkTestObj.executeTestCase(expectedResult) - browser_score_dict = json.loads(tdkTestObj.getResultDetails()) - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"] - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1, animation_threshold_value = getDeviceConfigKeyValue(conf_file,"ANIMATION_BENCHMARK_THRESHOLD_VALUE") - if animation_threshold_value != "": - print("\n Browser score from test: ",browser_score) - Summ_list.append('Browser score from test: {} '.format(browser_score)) - print("\n Threshold value for browser score:",animation_threshold_value) - Summ_list.append('Threshold value for browser score: {}'.format(animation_threshold_value)) - if float(browser_score) > float(animation_threshold_value): - print("\n The browser performance score is high as expected\n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The browser performance score is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the threshold value from config file") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the browser score") + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: + tdkTestObj.setResultStatus("SUCCESS"); + browser_score = browser_score_dict["main_score"] + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1, animation_threshold_value = getDeviceConfigKeyValue(conf_file,"ANIMATION_BENCHMARK_THRESHOLD_VALUE") + if animation_threshold_value != "": + print("\n Browser score from test: ",browser_score) + Summ_list.append('Browser score from test: {} '.format(browser_score)) + print("\n Threshold value for browser score:",animation_threshold_value) + Summ_list.append('Threshold value for browser score: {}'.format(animation_threshold_value)) + if float(browser_score) > float(animation_threshold_value): + print("\n The browser performance score is high as expected\n") else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE") - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",current_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS") - else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE") + print("\n The browser performance score is lower than expected \n") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to set URL to webkitbrowser") + print("Failed to get the threshold value from config file") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to get URL in webkitbrowser") + print("Failed to get the browser score") + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); + else: + tdkTestObj.setResultStatus("FAILURE"); + print("Unable to terminate the app") else: - print("Pre conditions are not met") - obj.setLoadModuleStatus("FAILURE") + print("Failed to launch the app") + obj.setLoadModuleStatus("FAILURE") getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj) obj.unloadModule("rdkv_performance") else: obj.setLoadModuleStatus("FAILURE") diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_CSS3.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_CSS3.py index 2730fcea..1cc03d1e 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_CSS3.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_CSS3.py @@ -74,6 +74,7 @@ import rdkv_performancelib import BrowserPerformanceVariables from StabilityTestUtility import * +import json #Test component to be tested obj = tdklib.TDKScriptingLibrary("rdkv_performance","1",standAlone=True); @@ -97,125 +98,67 @@ expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.css3_test_url; + app_bundle_name=BrowserPerformanceVariables.css3_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url browser_subcategory_list = BrowserPerformanceVariables.css3_test_subcategory_list - print("Check Pre conditions") - sub_category_failure = False - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)); - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - #Need to revert the values since we are changing plugin status - revert="YES" - set_status = set_pre_requisites(obj) - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE"; - else: - status = "FAILURE"; + app_name = "com.rdkcentral.css3" + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) if status == "SUCCESS": - print("\nPre conditions for the test are set successfully"); - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); + + time.sleep(20) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_CSS3'); tdkTestObj.executeTestCase(expectedResult); - current_url = tdkTestObj.getResultDetails(); - result = tdkTestObj.getResult(); - if current_url != None and expectedResult in result: + browser_score_dict = json.loads(tdkTestObj.getResultDetails()); + result = tdkTestObj.getResult() + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: tdkTestObj.setResultStatus("SUCCESS"); - print("Current URL:",current_url) - print("\nSet CSS3 test URL") - - tdkTestObj = obj.createTestStep('rdkservice_setValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); - tdkTestObj.addParameter("value",browser_test_url); - tdkTestObj.executeTestCase(expectedResult); - result = tdkTestObj.getResult(); - if expectedResult in result: - time.sleep(10) - - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); - tdkTestObj.executeTestCase(expectedResult); - new_url = tdkTestObj.getResultDetails(); - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - print("URL(",new_url,") is set successfully") - - time.sleep(20) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_CSS3'); - tdkTestObj.executeTestCase(expectedResult); - browser_score_dict = json.loads(tdkTestObj.getResultDetails()); - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"] - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1, css3_threshold_value = getDeviceConfigKeyValue(conf_file,"CSS3_THRESHOLD_VALUE") - result2, css3_subcategory_threshold_values = getDeviceConfigKeyValue(conf_file,"CSS3_SUBCATEGORY_THRESHOLD_VALUES") - if all(value != "" for value in (css3_threshold_value,css3_subcategory_threshold_values)): - print("\n Threshold value for browser performance main score: ",css3_threshold_value) - Summ_list.append('Threshold value for browser performance main score:{} '.format(css3_threshold_value)) - Summ_list.append('Browser score from test: {} '.format(browser_score)) - if int(browser_score) > int(css3_threshold_value): - print("\n The browser performance main score is high as expected\n") - subcategory_threshold_value_list = css3_subcategory_threshold_values.split(',') - for index,subcategory in enumerate(browser_subcategory_list): - if subcategory in browser_score_dict: - if int(browser_score_dict[subcategory]) < int(subcategory_threshold_value_list[index]): - print("\n Subcategory {} score:{} is less than the threshold value:{} \n".format(subcategory,browser_score_dict[subcategory],subcategory_threshold_value_list[index])) - tdkTestObj.setResultStatus("FAILURE") - sub_category_failure = True - if not sub_category_failure: - tdkTestObj.setResultStatus("SUCCESS") - print("\n The subcategory scores of {} are also as high as expected \n".format(browser_subcategory_list)) - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The overall browser performance is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE"); - print("\n The browser performance main score is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE"); - print("Failed to get the threshold value from config file") + browser_score = browser_score_dict["main_score"] + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1, css3_threshold_value = getDeviceConfigKeyValue(conf_file,"CSS3_THRESHOLD_VALUE") + result2, css3_subcategory_threshold_values = getDeviceConfigKeyValue(conf_file,"CSS3_SUBCATEGORY_THRESHOLD_VALUES") + if all(value != "" for value in (css3_threshold_value,css3_subcategory_threshold_values)): + print("\n Threshold value for browser performance main score: ",css3_threshold_value) + Summ_list.append('Threshold value for browser performance main score:{} '.format(css3_threshold_value)) + Summ_list.append('Browser score from test: {} '.format(browser_score)) + if int(browser_score) > int(css3_threshold_value): + print("\n The browser performance main score is high as expected\n") + subcategory_threshold_value_list = css3_subcategory_threshold_values.split(',') + for index,subcategory in enumerate(browser_subcategory_list): + if subcategory in browser_score_dict: + if int(browser_score_dict[subcategory]) < int(subcategory_threshold_value_list[index]): + print("\n Subcategory {} score:{} is less than the threshold value:{} \n".format(subcategory,browser_score_dict[subcategory],subcategory_threshold_value_list[index])) + tdkTestObj.setResultStatus("FAILURE") + sub_category_failure = True + if not sub_category_failure: + tdkTestObj.setResultStatus("SUCCESS") + print("\n The subcategory scores of {} are also as high as expected \n".format(browser_subcategory_list)) else: - tdkTestObj.setResultStatus("FAILURE"); - print("Failed to get the browser score") + tdkTestObj.setResultStatus("FAILURE") + print("\n The overall browser performance is lower than expected \n") else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE"); - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); - tdkTestObj.addParameter("value",current_url); - tdkTestObj.executeTestCase(expectedResult); - result = tdkTestObj.getResult(); - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS"); - else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE"); + print("\n The browser performance main score is lower than expected \n") else: tdkTestObj.setResultStatus("FAILURE"); - print("Failed to set URL to webkitbrowser") + print("Failed to get the threshold value from config file") + else: + tdkTestObj.setResultStatus("FAILURE"); + print("Failed to get the browser score") + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); else: tdkTestObj.setResultStatus("FAILURE"); - print("Failed to get URL in webkitbrowser") + print("Unable to terminate the app") else: - print("Pre conditions are not met") - obj.setLoadModuleStatus("FAILURE"); + print("Failed to launch the app") + obj.setLoadModuleStatus("FAILURE") getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj); obj.unloadModule("rdkv_performance"); else: obj.setLoadModuleStatus("FAILURE"); diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Kraken.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Kraken.py index 72f650b5..d83cd7f9 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Kraken.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Kraken.py @@ -90,6 +90,7 @@ import rdkv_performancelib import BrowserPerformanceVariables from StabilityTestUtility import * +import json #Test component to be tested obj = tdklib.TDKScriptingLibrary("rdkv_performance","1",standAlone=True); @@ -115,108 +116,54 @@ expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.kraken_test_url - print("\n Check Pre conditions") - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)) - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - #Need to revert the values since we are changing plugin status - revert="YES" - set_status = set_pre_requisites(obj) - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE" - else: - status = "FAILURE" + app_bundle_name=BrowserPerformanceVariables.kraken_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url + app_name = "com.rdkcentral.kraken" + + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) if status == "SUCCESS": - print("\nPre conditions for the test are set successfully") - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") + time.sleep(900) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Kraken') tdkTestObj.executeTestCase(expectedResult) - current_url = tdkTestObj.getResultDetails() + browser_score_dict = json.loads(tdkTestObj.getResultDetails()) result = tdkTestObj.getResult() - if current_url != None and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("Current URL:",current_url) - print("\nSet test URL") - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",browser_test_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(10) - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - new_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("URL(",new_url,") is set successfully") - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(900) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Kraken') - tdkTestObj.executeTestCase(expectedResult) - browser_score_dict = json.loads(tdkTestObj.getResultDetails()) - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"] - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1, kraken_threshold_value = getDeviceConfigKeyValue(conf_file,"KRAKEN_THRESHOLD_VALUE") - if kraken_threshold_value != "": - print("\n Browser score from test: ",browser_score) - Summ_list.append('Browser score from test: {} '.format(browser_score)) - print("\n Threshold value for browser score:",kraken_threshold_value) - Summ_list.append('Threshold value for browser score: {}'.format(kraken_threshold_value)) - if 0 < float(browser_score) < float(kraken_threshold_value): - print("\n The browser performance score is low as expected\n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The browser performance score is higher than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the threshold value from config file") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the browser score") - else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE") - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",current_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS") + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: + tdkTestObj.setResultStatus("SUCCESS"); + browser_score = browser_score_dict["main_score"] + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1, kraken_threshold_value = getDeviceConfigKeyValue(conf_file,"KRAKEN_THRESHOLD_VALUE") + if kraken_threshold_value != "": + print("\n Browser score from test: ",browser_score) + Summ_list.append('Browser score from test: {} '.format(browser_score)) + print("\n Threshold value for browser score:",kraken_threshold_value) + Summ_list.append('Threshold value for browser score: {}'.format(kraken_threshold_value)) + if 0 < float(browser_score) < float(kraken_threshold_value): + print("\n The browser performance score is low as expected\n") else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE") + print("\n The browser performance score is higher than expected \n") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to set URL to webkitbrowser") + print("Failed to get the threshold value from config file") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to get URL in webkitbrowser") + print("Failed to get the browser score") + + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); + else: + tdkTestObj.setResultStatus("FAILURE"); + print("Unable to terminate the app") else: - print("Pre conditions are not met") + print("Failed to launch the app") obj.setLoadModuleStatus("FAILURE") + getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj) obj.unloadModule("rdkv_performance") else: obj.setLoadModuleStatus("FAILURE") diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_MotionMark.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_MotionMark.py index 8c4aa27a..8fd9005e 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_MotionMark.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_MotionMark.py @@ -90,6 +90,7 @@ import rdkv_performancelib import BrowserPerformanceVariables from StabilityTestUtility import * +import json #Test component to be tested obj = tdklib.TDKScriptingLibrary("rdkv_performance","1",standAlone=True) @@ -114,120 +115,60 @@ expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.motionmark_test_url - print("\n Check Pre conditions") - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)) - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - #Need to revert the values since we are changing plugin status - revert="YES" - set_status = set_pre_requisites(obj) - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE" - else: - status = "FAILURE" - if status == "SUCCESS": - print("\nPre conditions for the test are set successfully") - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - current_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if current_url != None and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("Current URL:",current_url) - print("\nSet test URL") + app_bundle_name=BrowserPerformanceVariables.motion_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url + sub_category_failure = False - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",browser_test_url) + app_name = "com.rdkcentral.motion" + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) + if status == "SUCCESS": + result = browsertest_keypress(obj,app_name,["9","13"]) + if result == expectedResult: + time.sleep(420) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_MotionMark') tdkTestObj.executeTestCase(expectedResult) + browser_score_dict = json.loads(tdkTestObj.getResultDetails()) result = tdkTestObj.getResult() - if expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(10) - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - new_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("URL(",new_url,") is set successfully") - time.sleep(10) - params = '{"keys":[{"keyCode": 9,"modifiers": [],"delay":1.0,"callsign":"WebKitBrowser","client":"WebKitBrowser"},{"keyCode": 9,"modifiers": [],"delay":1.0,"callsign":"WebKitBrowser","client":"WebKitBrowser"},{"keyCode": 13,"modifiers": [],"delay":1.0,"callsign":"WebKitBrowser","client":"WebKitBrowser"}]}' - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","org.rdk.RDKShell.1.generateKey") - tdkTestObj.addParameter("value",params) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(420) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_MotionMark') - tdkTestObj.executeTestCase(expectedResult) - browser_score_dict = json.loads(tdkTestObj.getResultDetails()) - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"] - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1, motionmark_threshold_value = getDeviceConfigKeyValue(conf_file,"MOTIONMARK_THRESHOLD_VALUE") - if motionmark_threshold_value != "": - print("\n Browser score from test: ",browser_score) - Summ_list.append('Browser score from test: {} '.format(browser_score)) - print("\n Threshold value for browser score:",motionmark_threshold_value) - Summ_list.append('Threshold value for browser score: {}'.format(motionmark_threshold_value)) - if float(browser_score) > float(motionmark_threshold_value): - print("\n The browser performance score is high as expected\n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The browser performance score is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the threshold value from config file") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the browser score") + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: + tdkTestObj.setResultStatus("SUCCESS"); + browser_score = browser_score_dict["main_score"] + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1, motionmark_threshold_value = getDeviceConfigKeyValue(conf_file,"MOTIONMARK_THRESHOLD_VALUE") + if motionmark_threshold_value != "": + print("\n Browser score from test: ",browser_score) + Summ_list.append('Browser score from test: {} '.format(browser_score)) + print("\n Threshold value for browser score:",motionmark_threshold_value) + Summ_list.append('Threshold value for browser score: {}'.format(motionmark_threshold_value)) + if float(browser_score) > float(motionmark_threshold_value): + print("\n The browser performance score is high as expected\n") else: tdkTestObj.setResultStatus("FAILURE") - print("\n Error while executing generate key method") + print("\n The browser performance score is lower than expected \n") else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE") - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",current_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS") - else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE") + print("Failed to get the threshold value from config file") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to set URL to webkitbrowser") + print("Failed to get the browser score") else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get URL in webkitbrowser") + print("\n Error while executing generate key method") + obj.setLoadModuleStatus("FAILURE") + + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); + else: + tdkTestObj.setResultStatus("FAILURE"); + print("Unable to terminate the app") else: - print("Pre conditions are not met") + print("Failed to launch the app") obj.setLoadModuleStatus("FAILURE") + getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj) obj.unloadModule("rdkv_performance") else: obj.setLoadModuleStatus("FAILURE") diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Octane.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Octane.py index aa40200c..ca20997c 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Octane.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Octane.py @@ -92,121 +92,70 @@ obj.setLoadModuleStatus(result); expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.octane_test_url; + app_bundle_name=BrowserPerformanceVariables.octane_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url browser_subcategory_list = BrowserPerformanceVariables.octane_test_subcategory_list sub_category_failure = False - print("Check Pre conditions") - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)); - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - set_status = set_pre_requisites(obj) - #Need to revert the values since we are changing plugin status - revert="YES" - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE"; + app_name = "com.rdkcentral.octane" + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) if status == "SUCCESS": - print("\nPre conditions for the test are set successfully"); - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); + time.sleep(300) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Octane'); tdkTestObj.executeTestCase(expectedResult); - current_url = tdkTestObj.getResultDetails(); - result = tdkTestObj.getResult(); - if current_url != None and expectedResult in result: + browser_score_dict = json.loads(tdkTestObj.getResultDetails()); + result = tdkTestObj.getResult() + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: tdkTestObj.setResultStatus("SUCCESS"); - print("Current URL:",current_url) - print("\nSet Octane test URL") - tdkTestObj = obj.createTestStep('rdkservice_setValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); - tdkTestObj.addParameter("value",browser_test_url); - tdkTestObj.executeTestCase(expectedResult); - result = tdkTestObj.getResult(); - if expectedResult in result: - time.sleep(10) - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); - tdkTestObj.executeTestCase(expectedResult); - new_url = tdkTestObj.getResultDetails(); - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - print("URL(",new_url,") is set successfully") - time.sleep(300) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Octane'); - tdkTestObj.executeTestCase(expectedResult); - browser_score_dict = json.loads(tdkTestObj.getResultDetails()); - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"].replace("Octane Score: ",""); - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1, octane_threshold_value = getDeviceConfigKeyValue(conf_file,"OCTANE_THRESHOLD_VALUE") - result2, octane_subcategory_threshold_values = getDeviceConfigKeyValue(conf_file,"OCTANE_SUBCATEGORY_THRESHOLD_VALUES") - if all(value != "" for value in (octane_threshold_value,octane_subcategory_threshold_values)): - print("\n Threshold value for browser performance main score: ",octane_threshold_value) - Summ_list.append('Threshold value for browser performance main score:{} '.format(octane_threshold_value)) - Summ_list.append('Browser score from test: {} '.format(browser_score)) - if int(browser_score) > int(octane_threshold_value): - print("\n The browser performance main score is high as expected \n") - subcategory_threshold_value_list = octane_subcategory_threshold_values.split(',') - for index,subcategory in enumerate(browser_subcategory_list): - if int(browser_score_dict[subcategory]) < int(subcategory_threshold_value_list[index]): - print("\n Subcategory {} score:{} is less than the threshold value:{} \n".format(subcategory,browser_score_dict[subcategory],subcategory_threshold_value_list[index])) - tdkTestObj.setResultStatus("FAILURE") - sub_category_failure = True - if not sub_category_failure: - tdkTestObj.setResultStatus("SUCCESS") - print("\n The subcategory scores of {} are also as high as expected\n".format(browser_subcategory_list)) - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The overall browser performance is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE"); - print("\n The browser performance is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE"); - print("Failed to get the threshold value from config file") - elif "Running Octane" in browser_score_dict["main_score"]: - tdkTestObj.setResultStatus("FAILURE"); - print("Octane test is not completed") + browser_score = browser_score_dict["main_score"].replace("Octane Score: ",""); + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1, octane_threshold_value = getDeviceConfigKeyValue(conf_file,"OCTANE_THRESHOLD_VALUE") + result2, octane_subcategory_threshold_values = getDeviceConfigKeyValue(conf_file,"OCTANE_SUBCATEGORY_THRESHOLD_VALUES") + if all(value != "" for value in (octane_threshold_value,octane_subcategory_threshold_values)): + print("\n Threshold value for browser performance main score: ",octane_threshold_value) + Summ_list.append('Threshold value for browser performance main score:{} '.format(octane_threshold_value)) + Summ_list.append('Browser score from test: {} '.format(browser_score)) + if int(browser_score) > int(octane_threshold_value): + print("\n The browser performance main score is high as expected \n") + subcategory_threshold_value_list = octane_subcategory_threshold_values.split(',') + for index,subcategory in enumerate(browser_subcategory_list): + if int(browser_score_dict[subcategory]) < int(subcategory_threshold_value_list[index]): + print("\n Subcategory {} score:{} is less than the threshold value:{} \n".format(subcategory,browser_score_dict[subcategory],subcategory_threshold_value_list[index])) + tdkTestObj.setResultStatus("FAILURE") + sub_category_failure = True + if not sub_category_failure: + tdkTestObj.setResultStatus("SUCCESS") + print("\n The subcategory scores of {} are also as high as expected\n".format(browser_subcategory_list)) else: - tdkTestObj.setResultStatus("FAILURE"); - print("Failed to get the browser score") - else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE"); - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue'); - tdkTestObj.addParameter("method","WebKitBrowser.1.url"); - tdkTestObj.addParameter("value",current_url); - tdkTestObj.executeTestCase(expectedResult); - result = tdkTestObj.getResult(); - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS"); + tdkTestObj.setResultStatus("FAILURE") + print("\n The overall browser performance is lower than expected \n") else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE"); + print("\n The browser performance is lower than expected \n") else: tdkTestObj.setResultStatus("FAILURE"); - print("Failed to set URL") + print("Failed to get the threshold value from config file") + elif "Running Octane" in browser_score_dict["main_score"]: + tdkTestObj.setResultStatus("FAILURE"); + print("Octane test is not completed") + else: + tdkTestObj.setResultStatus("FAILURE"); + print("Failed to get the browser score") + + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); else: tdkTestObj.setResultStatus("FAILURE"); - print("Failed to get URL in webkitbrowser") + print("Unable to terminate the app") else: - print("Pre conditions are not met") - obj.setLoadModuleStatus("FAILURE"); + print("Failed to launch the app") + obj.setLoadModuleStatus("FAILURE") + getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj); obj.unloadModule("rdkv_performance"); else: obj.setLoadModuleStatus("FAILURE"); diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_SmashCat.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_SmashCat.py index ceccafe9..1fd397a2 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_SmashCat.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_SmashCat.py @@ -85,6 +85,7 @@ import rdkv_performancelib import BrowserPerformanceVariables from StabilityTestUtility import * +import json #Test component to be tested obj = tdklib.TDKScriptingLibrary("rdkv_performance","1",standAlone=True); @@ -109,108 +110,53 @@ expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.smashcat_test_url - print("\n Check Pre conditions") - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)) - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - #Need to revert the values since we are changing plugin status - revert="YES" - set_status = set_pre_requisites(obj) - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE" - else: - status = "FAILURE" + app_bundle_name=BrowserPerformanceVariables.smashcat_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url + sub_category_failure = False + app_name = "com.rdkcentral.smashcat" + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) if status == "SUCCESS": - print("\nPre conditions for the test are set successfully") - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") + time.sleep(10) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Smashcat') tdkTestObj.executeTestCase(expectedResult) - current_url = tdkTestObj.getResultDetails() + browser_score_dict = json.loads(tdkTestObj.getResultDetails()) result = tdkTestObj.getResult() - if current_url != None and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("Current URL:",current_url) - print("\nSet test URL") - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",browser_test_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(10) - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - new_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("URL(",new_url,") is set successfully") - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(10) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Smashcat') - tdkTestObj.executeTestCase(expectedResult) - browser_score_dict = json.loads(tdkTestObj.getResultDetails()) - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"] - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1,smashcat_threshold_value = getDeviceConfigKeyValue(conf_file,"SMASHCAT_THRESHOLD_VALUE") - if smashcat_threshold_value != "": - print("\n Browser score from test: ",browser_score) - Summ_list.append('Browser score from test: {} '.format(browser_score)) - print("\n Threshold value for browser score:",smashcat_threshold_value) - Summ_list.append('Threshold value for browser score: {}'.format(smashcat_threshold_value)) - if float(browser_score) > float(smashcat_threshold_value): - print("\n The browser performance score is high as expected\n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The browser performance score is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the threshold value from config file") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the browser score") - else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE") - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",current_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS") + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: + tdkTestObj.setResultStatus("SUCCESS"); + browser_score = browser_score_dict["main_score"] + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1,smashcat_threshold_value = getDeviceConfigKeyValue(conf_file,"SMASHCAT_THRESHOLD_VALUE") + if smashcat_threshold_value != "": + print("\n Browser score from test: ",browser_score) + Summ_list.append('Browser score from test: {} '.format(browser_score)) + print("\n Threshold value for browser score:",smashcat_threshold_value) + Summ_list.append('Threshold value for browser score: {}'.format(smashcat_threshold_value)) + if float(browser_score) > float(smashcat_threshold_value): + print("\n The browser performance score is high as expected\n") else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE") + print("\n The browser performance score is lower than expected \n") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to set URL to webkitbrowser") + print("Failed to get the threshold value from config file") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to get URL in webkitbrowser") + print("Failed to get the browser score") + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); + else: + tdkTestObj.setResultStatus("FAILURE"); + print("Unable to terminate the app") else: - print("Pre conditions are not met") + print("Failed to launch the app") obj.setLoadModuleStatus("FAILURE") + getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj) obj.unloadModule("rdkv_performance") else: obj.setLoadModuleStatus("FAILURE") diff --git a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Speedometer.py b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Speedometer.py index d84c1bae..0faa4550 100644 --- a/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Speedometer.py +++ b/framework/fileStore/testscriptsRDKV/certification/rdkv_performance/RDKV_CERT_PVS_Browser_Speedometer.py @@ -91,6 +91,7 @@ import rdkv_performancelib import BrowserPerformanceVariables from StabilityTestUtility import * +import json #Test component to be tested obj = tdklib.TDKScriptingLibrary("rdkv_performance","1",standAlone=True) @@ -114,119 +115,58 @@ expectedResult = "SUCCESS" if expectedResult in result.upper(): - browser_test_url=BrowserPerformanceVariables.speedometer_test_url - print("\n Check Pre conditions") - #No need to revert any values if the pre conditions are already set. - revert="NO" - status,curr_webkit_status,curr_cobalt_status = check_pre_requisites(obj) - print("Current values \nWebKitBrowser:%s\nCobalt:%s"%(curr_webkit_status,curr_cobalt_status)) - if status == "FAILURE": - if "FAILURE" not in (curr_webkit_status,curr_cobalt_status): - #Need to revert the values since we are changing plugin status - revert="YES" - set_status = set_pre_requisites(obj) - if set_status == "SUCCESS": - status,webkit_status,cobalt_status = check_pre_requisites(obj) - else: - status = "FAILURE" - else: - status = "FAILURE" - if status == "SUCCESS": - print("\nPre conditions for the test are set successfully") - print("\nGet the URL in WebKitBrowser") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - current_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if current_url != None and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("Current URL:",current_url) - print("\nSet test URL") - - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",browser_test_url) + app_bundle_name=BrowserPerformanceVariables.speedometer_app_bundle_name + app_download_url=BrowserPerformanceVariables.app_download_url + app_name = "com.rdkcentral.speedometer" + status = rdkservice_install_launch_app(obj, app_bundle_name, app_name, app_download_url) + if status == "SUCCESS": + result = browsertest_keypress(obj,app_name,["9","13"]) + if result == expectedResult: + time.sleep(2000) + tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Speedometer') tdkTestObj.executeTestCase(expectedResult) + browser_score_dict = json.loads(tdkTestObj.getResultDetails()) result = tdkTestObj.getResult() - if expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(10) - print("\nValidate if the URL is set successfully or not") - tdkTestObj = obj.createTestStep('rdkservice_getValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.executeTestCase(expectedResult) - new_url = tdkTestObj.getResultDetails() - result = tdkTestObj.getResult() - if new_url == browser_test_url and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - print("URL(",new_url,") is set successfully") - params = '{"keys":[{"keyCode": 9,"modifiers": [],"delay":1.0},{"keyCode": 9,"modifiers": [],"delay":1.0},{"keyCode": 13,"modifiers": [],"delay":1.0}]}' - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","org.rdk.RDKShell.1.generateKey") - tdkTestObj.addParameter("value",params) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS") - time.sleep(2000) - tdkTestObj = obj.createTestStep('rdkservice_getBrowserScore_Speedometer') - tdkTestObj.executeTestCase(expectedResult) - browser_score_dict = json.loads(tdkTestObj.getResultDetails()) - result = tdkTestObj.getResult() - if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: - tdkTestObj.setResultStatus("SUCCESS"); - browser_score = browser_score_dict["main_score"] - conf_file,result = getConfigFileName(tdkTestObj.realpath) - result1, speedometer_threshold_value = getDeviceConfigKeyValue(conf_file,"SPEEDOMETER_THRESHOLD_VALUE") - if speedometer_threshold_value != "": - print("\n Browser score from test: ",browser_score) - Summ_list.append('Browser score from test is :{}'.format(browser_score)) - print("\n Threshold value for browser score:",speedometer_threshold_value) - Summ_list.append('Threshold value for browser score: {}'.format(speedometer_threshold_value)) - if float(browser_score) > float(speedometer_threshold_value): - print("\n The browser performance score is high as expected\n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("\n The browser performance score is lower than expected \n") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the threshold value from config file") - else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get the browser score") + if browser_score_dict["main_score"] != "Unable to get the browser score" and expectedResult in result: + tdkTestObj.setResultStatus("SUCCESS"); + browser_score = browser_score_dict["main_score"] + conf_file,result = getConfigFileName(tdkTestObj.realpath) + result1, speedometer_threshold_value = getDeviceConfigKeyValue(conf_file,"SPEEDOMETER_THRESHOLD_VALUE") + if speedometer_threshold_value != "": + print("\n Browser score from test: ",browser_score) + Summ_list.append('Browser score from test is :{}'.format(browser_score)) + print("\n Threshold value for browser score:",speedometer_threshold_value) + Summ_list.append('Threshold value for browser score: {}'.format(speedometer_threshold_value)) + if float(browser_score) > float(speedometer_threshold_value): + print("\n The browser performance score is high as expected\n") else: tdkTestObj.setResultStatus("FAILURE") - print("\n Error while executing generate key method") + print("\n The browser performance score is lower than expected \n") else: - print("Failed to load the URL",new_url) - tdkTestObj.setResultStatus("FAILURE") - #Set the URL back to previous - tdkTestObj = obj.createTestStep('rdkservice_setValue') - tdkTestObj.addParameter("method","WebKitBrowser.1.url") - tdkTestObj.addParameter("value",current_url) - tdkTestObj.executeTestCase(expectedResult) - result = tdkTestObj.getResult() - if result == "SUCCESS": - print("URL is reverted successfully") - tdkTestObj.setResultStatus("SUCCESS") - else: - print("Failed to revert the URL") tdkTestObj.setResultStatus("FAILURE") + print("Failed to get the threshold value from config file") else: tdkTestObj.setResultStatus("FAILURE") - print("Failed to set URL to webkitbrowser") + print("Failed to get the browser score") + else: + print("\n Error while executing generate key method") + obj.setLoadModuleStatus("FAILURE") + + print("\n Terminating the app") + tdkTestObj = obj.createTestStep('rdkv_terminate_app'); + tdkTestObj.addParameter("app_id",app_name) + tdkTestObj.executeTestCase(expectedResult) + result = tdkTestObj.getResult() + if result == "SUCCESS": + tdkTestObj.setResultStatus("SUCCESS"); else: - tdkTestObj.setResultStatus("FAILURE") - print("Failed to get URL in webkitbrowser") + tdkTestObj.setResultStatus("FAILURE"); + print("Unable to terminate the app") else: - print("Pre conditions are not met") - obj.setLoadModuleStatus("FAILURE") + print("Failed to launch the app") + obj.setLoadModuleStatus("FAILURE") + getSummary(Summ_list,obj) - #Revert the values - if revert=="YES": - print("Revert the values before exiting") - status = revert_value(curr_webkit_status,curr_cobalt_status,obj) obj.unloadModule("rdkv_performance") else: obj.setLoadModuleStatus("FAILURE")