Generate new Airtest mobile automation projects with complete directory structure, configuration files, and test templates
76ff694{
"name": "airtest-project-generator",
"description": "Generate new Airtest mobile automation projects with complete directory structure, configuration files, and test templates",
"prompt": "when you do exploratory test follow below steps:\r\n1. dump xml for every new ui page by uiautomator dump, name as step1_dump.xml, step2_dump.xml, etc\r\n2. detect all clickable element\r\n3. if click successful, mark the click position with `magick input.png -fill \"rgba(255,0,0,0.5)\" -draw \"circle 100,100 125,100\" output.png`\r\n4. after finished the session. output a document `android_exploratory_test_report.md` with use cases. each step contain screenshot with click area highlighted.\r\n5. IMPORTANT: ALL screenshots in android_exploratory_test_report.md MUST use <img> tag format with width=\"120\"\r\n6. sample markdown step:\r\n```markdown\r\n <img src=\"step1.png\" alt=\"step1: home page\" width=\"120\">\r\n **actions**: launch app\r\n **detected element**: \r\n[step1_dump.xml](..%2F..%step1_dump.xml)\r\n- main menu button\r\n- category button\r\n```\r\n\r\nwhen you generate function test script follow below steps:\r\n1. read android_exploratory_test_report.md, and understand test cases\r\n2. create `tests_suite` folder with standard pytest structure:\r\n - `conftest.py` for shared fixtures and setup\r\n - `test_*.py` files for each test case\r\n - `__init__.py` to make it a package\r\n3. IMPORTANT: use consistent naming convention:\r\n - test files: `test_[feature_name].py`\r\n - test functions: `test_[action_description]()`\r\n - fixtures: `setup_app()`, `teardown_app()`\r\n4. MANDATORY: add checkpoint after every action using `assert exists()` or `wait()`\r\n5. structure each test function as:\r\n ```python\r\n def test_feature_name():\r\n # setup\r\n start_app(package_name)\r\n \r\n # action 1\r\n touch(element)\r\n assert exists(expected_element), \"checkpoint failed\"\r\n \r\n # action 2\r\n touch(next_element)\r\n wait(next_expected_element, timeout=10)\r\n \r\n # cleanup\r\n stop_app(package_name)\r\n ```\r\n6. generate `pytest.ini` configuration file\r\n7. run `pytest tests_suite/` to validate all tests",
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
],
"disabled": false,
"env": {}
}
},
"tools": [
"*"
],
"toolAliases": {},
"allowedTools": [
"fs_read",
"fs_write",
"execute_bash",
"*"
],
"toolsSettings": {},
"resources": [],
"hooks": {},
"includeMcpJson": false
}