def test_scs_app(): results = {} results['fortune_ui.health'] = False results['fortune_svc.health'] = False results['fortune_ui.random'] = False try: print( "Checking the health of Spring Cloud Services bound to fortune-teller app..." ) _, ui_routes = utils.get_app_routes(fortune_ui_app) ui_health_url = "https://{}/health".format(ui_routes[0].strip()) ui_random_url = "https://{}/random".format(ui_routes[0].strip()) _, svc_routes = utils.get_app_routes(fortune_svc_app) svc_health_url = "https://{}/health".format(svc_routes[0].strip()) print(ui_health_url) resp = requests.get(ui_health_url) results['fortune_ui.health'] = (resp.status_code == 200) print("status: {},\ncontent: {}\n".format(resp.status_code, resp.content)) print(svc_health_url) resp = requests.get(svc_health_url) results['fortune_svc.health'] = (resp.status_code == 200) print("status: {},\ncontent: {}\n".format(resp.status_code, resp.content)) print(ui_random_url) resp = requests.get(ui_random_url) results['fortune_ui.random'] = (resp.status_code == 200) print("status: {},\ncontent: {}\n".format(resp.status_code, resp.content)) print("Stoping fortune-service app...") common_tests.stop_app(fortune_svc_app) print(ui_random_url) resp = requests.get(ui_random_url) results['fortune_ui.random'] = results['fortune_ui.random'] and ( resp.status_code == 200) print("status: {},\ncontent: {}\n".format(resp.status_code, resp.content)) print("Starting fortune-service app...") if not common_tests.start_app(fortune_svc_app): results['fortune_svc.get_app_logs'] = common_tests.get_app_logs( fortune_svc_app) print(ui_random_url) resp = requests.get(ui_random_url) results['fortune_ui.random'] = results['fortune_ui.random'] and ( resp.status_code == 200) print("status: {},\ncontent: {}\n".format(resp.status_code, resp.content)) except Exception as e: print(str(e)) return results
def generate_http_traffic(): try: _, routes = utils.get_app_routes(autoscaler_sample_app) url = "https://{}/".format(routes[0].strip()) print( "Sending HTTP GET requests to the app for 15 min without any delays between each request..." ) t_end = time.time() + 60 * 15 num_requests = 0 while time.time() < t_end: resp = requests.get(url) num_requests = num_requests + 1 print("Sent {} requests in last 15 min".format(num_requests)) num_requests = 0 print( "Sending HTTP GET requests to the app for 10 min with 10 seconds delay between each request..." ) t_end = time.time() + 60 * 10 while time.time() < t_end: time.sleep(10) resp = requests.get(url) num_requests = num_requests + 1 print("Sent {} requests in last 10 min".format(num_requests)) except Exception as e: print(str(e))
def test_rabbitmq_app(): results = {} results['read'] = False results['write'] = False try: _, routes = utils.get_app_routes(rabbitmq_sample_app) url = "https://{}".format(routes[0].strip()) print("Writing into rabbitmq instance via sample-app endpoint: {}". format(url)) resp = requests.post("{}/write".format(url), data='test_message') results['write'] = (resp.status_code == 201) print("status: {}, content: {}\n".format(resp.status_code, resp.content)) print("Reading from rabbitmq instance via sample-app endpoint: {}". format(url)) resp = requests.get("{}/read".format(url)) results['read'] = (resp.status_code == 200 and str( json.loads(resp.content)['message']) == 'test_message') print("status: {}, content: {}\n".format(resp.status_code, resp.content)) except Exception as e: print(str(e)) return results
def test_app_instances_connection(num_instances): max_attempts = 10 app_instance_connection_results = {} try: for i in range(num_instances): app_instance_connection_results[i] = False _, appguid = common_tests.show_app_guid(pas_sample_app) _, routes = utils.get_app_routes(pas_sample_app) url = "https://{}/".format(routes[0].strip()) print( "Trying to connect to all of the app-instances using end-point {}". format(url)) for i in range(num_instances): for j in range(max_attempts): _header = {"X-Cf-App-Instance": "{}:{}".format(appguid, i)} resp = requests.get(url, headers=_header) print("Instance-index: {}, Attempt: {}, response: {}".format( i, j, resp.status_code)) if resp.status_code == 200: print( "Connection to index {} was successful in {} attempts". format(i, j + 1)) app_instance_connection_results[i] = True break if not all(app_instance_connection_results.values()): print( "Could not reach to all instances of sample-app in {} attempts." .format(max_attempts * num_instances)) except Exception as e: print(str(e)) return all(app_instance_connection_results.values())
def test_redis_app(): results = {} results['read'] = False results['write'] = False try: _ , routes = utils.get_app_routes(redis_sample_app) url = "https://{}".format(routes[0].strip()) print("Writing into redis instance via sample-app endpoint: {}".format(url)) resp = requests.post("{}/write".format(url), data=json.dumps({"foo":"bar"})) results['write'] = (resp.status_code == 201) print("status: {}, content: {}\n".format(resp.status_code, resp.content)) print("Reading from redis instance via sample-app endpoint: {}".format(url)) resp = requests.get("{}/read/foo".format(url)) results['read'] = (resp.status_code == 200 and str(json.loads(resp.content)['foo']) == 'bar') print("status: {}, content: {}\n".format(resp.status_code, resp.content)) except Exception as e: print(str(e)) return results
def test_mysql_app(): results = {} results['read'] = False results['write'] = False try: _, routes = utils.get_app_routes(mysql_sample_app) url = "https://{}/user".format(routes[0].strip()) print("Writing into mysql instance via sample-app endpoint: {}".format( url)) resp = requests.post(url) results['write'] = (resp.status_code == 201) print("status: {}, content: {}\n".format(resp.status_code, resp.content)) print("Reading from mysql instance via sample-app endpoint: {}".format( url)) resp = requests.get(url) results['read'] = (resp.status_code == 200) print("status: {}, content: {}\n".format(resp.status_code, resp.content)) except Exception as e: print(str(e)) return results