Example #1
0
    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')
Example #2
0
    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,
Example #3
0
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()
Example #4
0
        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,
Example #5
0
    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,