def test_android_runner_task_install_android_apks(self): device_serial = '192.168.31.223:5555' app_id = 'com.chi.ssetest' release_version = 'release-20191016-0.0.3' with DAG(dag_id='any_dag', start_date=datetime.now()) as dag: def push_function(**kwargs): release_apk = ReleaseFile() release_apk.name = 'app-debug.apk' release_apk.type = 'application/vnd.android.package-archive' release_apk.url = 'https://github.com/stocksdktest/AndroidTestRunner/releases/download/release-20191016-0.0.3/app-debug.apk' release_testing = ReleaseFile() release_testing.name = 'app-debug-androidTest.apk' release_testing.type = 'application/vnd.android.package-archive' release_testing.url = 'https://github.com/stocksdktest/AndroidTestRunner/releases/download/release-20191016-0.0.3/app-debug-androidTest.apk' kwargs['ti'].xcom_push(key='android_release', value=[release_apk, release_testing]) release_provider = PythonOperator(task_id='push_task', python_callable=push_function, provide_context=True) android_runner = AndroidRunnerOperator(task_id='android_runner', provide_context=True, apk_id=app_id, apk_version=release_version, target_device=device_serial, runner_conf=RunnerConfig()) release_provider >> android_runner execution_date = datetime.now() provider_instance = TaskInstance(task=release_provider, execution_date=execution_date) release_provider.execute(provider_instance.get_template_context()) runner_instance = TaskInstance(task=android_runner, execution_date=execution_date) context = runner_instance.get_template_context() context['run_id'] = 'fake-run' android_runner.pre_execute(context) main_apk_version = get_app_version(device_serial, app_id) testing_apk_version = get_app_version(device_serial, '%s.test' % app_id) self.assertEqual(release_version, main_apk_version, 'main app version not match') self.assertEqual(release_version, testing_apk_version, 'testing app version not match')
runner_conf_list = initRunnerConfig() task_id_to_cmp_list = ['adb_shell_cmp_a', 'adb_shell_cmp_b'] android_release = AndroidReleaseOperator( task_id='android_release', provide_context=False, repo_name='stocksdktest/AndroidTestRunner', tag_id='release-20191114-0.0.4', tag_sha='b6634e0e8b2318e0a78bf8b17e55d576606265b4', runner_conf=runner_conf_list[0]) android_a = AndroidRunnerOperator( task_id=task_id_to_cmp_list[0], provide_context=False, apk_id='com.chi.ssetest', apk_version='release-20191114-0.0.4', # list[0] runner_conf=runner_conf_list[0]) android_b = AndroidRunnerOperator(task_id=task_id_to_cmp_list[1], provide_context=False, apk_id='com.chi.ssetest', apk_version='release-20191114-0.0.4', runner_conf=runner_conf_list[1]) android_cmp = DataCompareOperator(task_id='data_compare', task_id_list=task_id_to_cmp_list, retries=3, provide_context=False, runner_conf=RunnerConfig,
runner_conf.casesConfig.extend([case_conf]) with DAG( dag_id='android_test', default_args={ 'owner': 'airflow', 'start_date': airflow.utils.dates.days_ago(0) }, schedule_interval='@once', ) as dag: run_this_last = DummyOperator(task_id='run_this_last', queue='android') android_release = AndroidReleaseOperator( task_id='android_release', provide_context=False, repo_name='stocksdktest/AndroidTestRunner', tag_id='release-20191016-0.0.3', tag_sha='16a5ad8d128df1b55f962b52e87bac481f98475f', runner_conf=runner_conf) android_tc = AndroidRunnerOperator(task_id='adb_shell', provide_context=False, apk_id='com.chi.ssetest', apk_version='release-20191016-0.0.3', runner_conf=runner_conf) android_release >> android_tc >> run_this_last if __name__ == "__main__": dag.cli()
tag_id='release-20191203-0.0.1', tag_sha='86b0dfe4301df2faa65861f15fae19e5089d0ee6', runner_conf=runner_conf_list[0]) #生产 android_release2 = AndroidReleaseOperator( task_id='android_release2', release_xcom_key='android_release2', provide_context=False, repo_name='stocksdktest/AndroidTestRunner', tag_id='release-20191202-0.0.1', tag_sha='8f63d499ef5c525cb710b8d0b18427b60c3e7694', runner_conf=runner_conf_list[0]) android_a = AndroidRunnerOperator(task_id=task_id_to_cmp_list[0], release_xcom_key='android_release1', provide_context=False, apk_id='com.chi.ssetest', apk_version='release-20191203-0.0.1', runner_conf=runner_conf_list[0]) android_b = AndroidRunnerOperator(task_id=task_id_to_cmp_list[1], release_xcom_key='android_release2', provide_context=False, apk_id='com.chi.ssetest', apk_version='release-20191202-0.0.1', runner_conf=runner_conf_list[1]) android_cmp = DataCompareOperator(task_id='data_compare', task_id_list=task_id_to_cmp_list, retries=3, provide_context=False, runner_conf=RunnerConfig,
task_id_to_cmp_list = ['adb_shell_cmp_a', 'adb_shell_cmp_b'] #过实例化Operator,定义各个测试任务 #AndroidReleaseOperator完成代码构建和打包APK的过程 #AndroidRunnerOperator的作用是自动安装某个release版本的APK并运行测试样例进行测试 android_release = AndroidReleaseOperator( task_id='android_release', #任务名 provide_context=False, repo_name='stocksdktest/AndroidTestRunner', #创建Github仓库 tag_id='release-20191202-0.0.2', tag_sha='0b0e32fe16c690957a7582d9f61bbc6d9eb3444e', #获取指定版本仓库 runner_conf=runner_conf_list[0]) android_a = AndroidRunnerOperator( task_id=task_id_to_cmp_list[0], provide_context=False, apk_id='com.chi.ssetest', apk_version= 'release-20191202-0.0.2', #apk_vesrion对应AndroidReleaseOperator中的tag_id runner_conf=runner_conf_list[0]) android_b = AndroidRunnerOperator(task_id=task_id_to_cmp_list[1], provide_context=False, apk_id='com.chi.ssetest', apk_version='release-20191202-0.0.2', runner_conf=runner_conf_list[0]) android_cmp = DataCompareOperator(task_id='data_compare', task_id_list=task_id_to_cmp_list, retries=3, provide_context=False, runner_conf=RunnerConfig,