gitextract_p6uqsu94/ ├── .gitignore ├── CHANGES.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── api_case/ │ ├── api_case.xlsx │ └── confrun.py ├── demo/ │ ├── README.md │ ├── __init__.py │ ├── confrun.py │ ├── reports/ │ │ └── .keep │ ├── run.py │ ├── test_data/ │ │ ├── csv_data.csv │ │ ├── excel_data.xlsx │ │ ├── json_data.json │ │ └── yaml_data.yaml │ └── test_dir/ │ ├── __init__.py │ ├── api_case/ │ │ ├── __init__.py │ │ └── test_http_demo.py │ ├── app_case/ │ │ ├── __init__.py │ │ ├── test_first_demo.py │ │ ├── test_po_demo.py │ │ └── test_u2_demo.py │ └── web_case/ │ ├── __init__.py │ ├── test_data_demo.py │ ├── test_ddt_demo.py │ ├── test_first_demo.py │ ├── test_fixture_demo.py │ ├── test_playwright_demo.py │ └── test_po_demo.py ├── description.rst ├── docs/ │ ├── .gitignore │ ├── README.md │ ├── compare.md │ ├── deploy.sh │ ├── package.json │ └── vpdocs/ │ ├── .vuepress/ │ │ └── config.js │ ├── README.md │ ├── api-testing/ │ │ ├── api_case.md │ │ ├── api_object.md │ │ ├── assert.md │ │ ├── more.md │ │ ├── start.md │ │ └── webscocket.md │ ├── app-testing/ │ │ ├── adb_lib.md │ │ ├── appium_lab.md │ │ ├── extensions.md │ │ ├── page_object.md │ │ └── start.md │ ├── develop.md │ ├── getting-started/ │ │ ├── advanced.md │ │ ├── create_project.md │ │ ├── data_driver.md │ │ ├── dependent_func.md │ │ ├── installation.md │ │ ├── quick_start.md │ │ └── seldom_cli.md │ ├── introduce.md │ ├── more-ability/ │ │ ├── benchmark.md │ │ ├── db_operation.md │ │ └── test_library.md │ ├── platform/ │ │ └── platform.md │ ├── version/ │ │ └── CHANGES.md │ └── web-testing/ │ ├── browser_driver.md │ ├── chaining.md │ ├── other.md │ ├── page_object.md │ └── seldom_api.md ├── pyproject.toml ├── requirements.txt ├── seldom/ │ ├── __init__.py │ ├── appdriver.py │ ├── appium_lab/ │ │ ├── __init__.py │ │ ├── action.py │ │ ├── android.py │ │ ├── appium_service.py │ │ ├── find.py │ │ ├── keyboard.py │ │ ├── ocr_plugin.py │ │ └── switch.py │ ├── case.py │ ├── cli.py │ ├── db_operation/ │ │ ├── __init__.py │ │ ├── base_db.py │ │ ├── mongo_db.py │ │ ├── mssql_db.py │ │ ├── mysql_db.py │ │ ├── postgres_db.py │ │ └── sqlite_db.py │ ├── driver.py │ ├── extend_lib/ │ │ ├── __init__.py │ │ ├── base_assert.py │ │ ├── curlify.py │ │ ├── jsonpath.py │ │ ├── parameterized.py │ │ └── tomorrow.py │ ├── file_runner/ │ │ ├── __init__.py │ │ └── api_excel.py │ ├── har2case/ │ │ ├── __init__.py │ │ ├── core.py │ │ ├── demo.har │ │ └── utils.py │ ├── logging/ │ │ ├── __init__.py │ │ ├── exceptions.py │ │ └── log.py │ ├── project_temp/ │ │ ├── __init__.py │ │ ├── api/ │ │ │ ├── confrun.py │ │ │ ├── run.py │ │ │ └── test_sample.py │ │ ├── app/ │ │ │ ├── confrun.py │ │ │ ├── run.py │ │ │ └── test_sample.py │ │ ├── data.json │ │ └── web/ │ │ ├── confrun.py │ │ ├── run.py │ │ └── test_sample.py │ ├── request.py │ ├── running/ │ │ ├── DebugTestRunner.py │ │ ├── __init__.py │ │ ├── config.py │ │ ├── loader_extend.py │ │ ├── loader_hook.py │ │ └── runner.py │ ├── skip.py │ ├── swagger2case/ │ │ ├── __init__.py │ │ ├── core.py │ │ └── swagger.json │ ├── testdata/ │ │ ├── __init__.py │ │ ├── conversion.py │ │ ├── parameterization.py │ │ ├── random_data.py │ │ └── random_func.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── adbutils.py │ │ ├── benchmark.py │ │ ├── cache.py │ │ ├── cache_data.json │ │ ├── dependence.py │ │ ├── diff.py │ │ ├── encrypt.py │ │ ├── file_extend.py │ │ ├── genson.py │ │ ├── jmespath.py │ │ ├── match_image.py │ │ ├── resource_loader.py │ │ ├── send_extend.py │ │ ├── thread_lab.py │ │ └── timer.py │ ├── webcommon/ │ │ ├── __init__.py │ │ ├── find_elems.py │ │ ├── keyboard.py │ │ ├── locators.py │ │ └── selector.py │ ├── webdriver.py │ ├── webdriver_chaining.py │ └── websocket_client.py └── tests/ ├── data/ │ ├── country.graphql │ ├── db.sqlite3 │ └── hello.txt ├── test_adb.py ├── test_api_object.py ├── test_autowing.py ├── test_base_assert.py ├── test_benchmark.py ├── test_browser.py ├── test_browser_new.py ├── test_cache/ │ ├── __init__.py │ ├── test_cache.py │ ├── test_cache_thread.py │ └── test_memory_cache.py ├── test_db/ │ ├── __init__.py │ ├── test_db_mssql.py │ ├── test_db_mysql.py │ ├── test_db_postgresdb.py │ └── test_db_sqlite3.py ├── test_dependent_func.py ├── test_encrypt.py ├── test_fixture.py ├── test_graphql.py ├── test_http_assert.py ├── test_jsonpath.py ├── test_locators.py ├── test_log.py ├── test_other_lib/ │ ├── __init__.py │ ├── test_playwright.py │ ├── test_pyautogui.py │ └── test_uiautomator.py ├── test_playwright_sample.py ├── test_random/ │ ├── __init__.py │ └── test_testdata.py ├── test_request_extend.py ├── test_skip.py ├── test_steps_chaining.py ├── test_steps_chaining_browser.py ├── test_thread/ │ ├── __init__.py │ ├── test_thread.py │ ├── test_thread_browser.py │ ├── test_thread_case.py │ └── test_thread_path.py ├── test_utils/ │ ├── __init__.py │ └── test_file.py └── test_websocket/ ├── __init__.py ├── test_websocket.py └── webscoket_server.py