robot-framework-py
4
总安装量
4
周安装量
#53392
全站排名
安装命令
npx skills add https://github.com/arvind3/robot-framework-py-skill --skill robot-framework-py
Agent 安装分布
codex
3
claude-code
3
mcpjam
2
kilo
2
windsurf
2
zencoder
2
Skill 文档
Robot Framework (Python) â Top 5 Library Playbook
Use this skill to produce deterministic, maintainable Robot Framework code with enterprise-ready patterns.
Apply this project structure by default
tests/
resources/
libraries/
variables/
- Place suite files in
tests/. - Place reusable keywords in
resources/. - Place custom Python keyword libraries in
libraries/. - Place environment-specific variable files in
variables/.
Universal golden patterns
- Keep test cases short; place repeated behavior in resource keywords.
- Use
Suite Setup/Suite Teardownfor lifecycle management. - Use deterministic assertions (
Should Be Equal*,Should Contain,Should Not Be Empty). - Prefer stable local fixtures/mocks over live external systems.
- Keep secrets in environment variables or secure variable files.
- Use consistent tags:
smoke,enterprise,ui,api,mobile,database,regression.
Library guidance
1) SeleniumLibrary
Setup
- Install:
pip install robotframework-seleniumlibrary - Import:
Library SeleniumLibrary - Prefer headless browser in CI and static local pages for determinism.
Recommended patterns
- Wrap page actions in resource keywords.
- Use resilient locators (
id,data-testid) over brittle XPath. - Keep waits explicit (
Wait Until Element Is Visible) and bounded.
Common pitfalls
- Hardcoded sleeps.
- Overly broad locators.
- Asserting on transient animation text.
Do / Don’t
- Do: centralize URL and locator variables.
- Do: isolate test data per test.
- Don’t: call low-level click/type steps repeatedly in test cases.
- Don’t: depend on internet websites for smoke tests.
Minimal working example
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Open Local Smoke Page
Open Browser file://${CURDIR}/fixtures/smoke.html chrome
Wait Until Page Contains Robot Smoke
[Teardown] Close Browser
2) RequestsLibrary
Setup
- Install:
pip install robotframework-requests - Import:
Library RequestsLibrary
Recommended patterns
- Create one session per API domain.
- Keep headers/auth in reusable keywords.
- Assert both status code and payload fields.
Common pitfalls
- Calling Python
requests.get()directly. - Repeating base URL and headers in every test.
- Non-deterministic live dependencies.
Do / Don’t
- Do: use local/mock endpoints for deterministic tests.
- Do: validate response schema fields.
- Don’t: rely on random public APIs.
Minimal working example
*** Settings ***
Library RequestsLibrary
*** Test Cases ***
Health Endpoint Smoke
Create Session api http://localhost:8080
${resp}= GET On Session api /health
Should Be Equal As Integers ${resp.status_code} 200
3) Browser Library (Playwright)
Setup
- Install:
pip install robotframework-browser - Initialize browser binaries:
rfbrowser init - Import:
Library Browser
Recommended patterns
- Use
New Browserin suite setup and close in teardown. - Prefer role/text/test-id selectors.
- Use context/page keywords via resources.
Common pitfalls
- Forgetting
rfbrowser initin fresh environments. - Recreating browser per test when suite-level fixture is enough.
- Using unstable CSS selectors.
Do / Don’t
- Do: run headless in CI.
- Do: use trace/screenshot on failure hooks where needed.
- Don’t: mix Selenium and Browser keywords in one suite.
Minimal working example
*** Settings ***
Library Browser
*** Test Cases ***
Browser Smoke
New Browser chromium headless=true
New Page about:blank
Get Title
[Teardown] Close Browser
4) AppiumLibrary
Setup
- Install:
pip install robotframework-appiumlibrary - Import:
Library AppiumLibrary - Start local Appium server and emulator/simulator in CI job bootstrap.
Recommended patterns
- Store desired capabilities in variable files.
- Wrap launch/login/common navigation in resource keywords.
- Use accessibility IDs first.
Common pitfalls
- Device-dependent selectors.
- Hardcoded UDIDs in test files.
- Missing teardown causing stale sessions.
Do / Don’t
- Do: keep platform-specific caps isolated.
- Do: tag tests by platform (
android,ios). - Don’t: use pixel coordinates unless unavoidable.
Minimal working example
*** Settings ***
Library AppiumLibrary
*** Test Cases ***
Open App Session Smoke
Open Application http://127.0.0.1:4723/wd/hub platformName=Android
... automationName=UiAutomator2 appPackage=com.example appActivity=.MainActivity
Page Should Contain Text Welcome
[Teardown] Close Application
5) DatabaseLibrary
Setup
- Install:
pip install robotframework-databaselibrary - Import:
Library DatabaseLibrary - Use ephemeral/local DB for deterministic execution.
Recommended patterns
- Connect once per suite, disconnect in teardown.
- Use seeded fixtures and deterministic queries.
- Validate data through business-level keywords.
Common pitfalls
- Reusing mutable DB state across tests.
- Non-parameterized SQL from test input.
- Asserting entire row payloads when only critical fields matter.
Do / Don’t
- Do: reset DB state in setup.
- Do: check row counts and key columns.
- Don’t: run destructive queries on shared environments.
Minimal working example
*** Settings ***
Library DatabaseLibrary
*** Test Cases ***
Database Smoke
Connect To Database sqlite3 ${CURDIR}/fixtures/app.db
${rows}= Query SELECT status FROM health_check
Should Be Equal ${rows}[0][0] UP
[Teardown] Disconnect From Database
Microsoft-style testing strategy and RALF loop
- Understand/Plan: map prompts to expected patterns and forbidden patterns.
- Build: keep reusable resources and variable layering.
- Validate: add scenario-driven checks and quality gates in CI.
- Iterate with RALF:
- Review failures and inconsistency reports.
- Analyze root causes (guidance gap, example drift, weak assertions).
- Learn by codifying conventions and anti-patterns.
- Fix docs/examples/tests and re-run quality checks.
Execute with this checklist
- Identify output type (
.robot,.resource, variable file, or Python library). - Choose target library and fixture strategy.
- Generate deterministic assertions and reusable keywords.
- Refactor duplication into resources.
- Add/refresh scenario checks and acceptance rules.
- Ensure CI checks are green.
References
- Robot Framework User Guide: https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html
- SeleniumLibrary docs: https://robotframework.org/SeleniumLibrary/
- RequestsLibrary docs: https://docs.robotframework.org/docs/different_libraries/requests
- Browser library docs: https://marketsquare.github.io/robotframework-browser/
- AppiumLibrary docs: https://docs.robotframework.org/docs/different_libraries/appium
- DatabaseLibrary docs: https://docs.robotframework.org/docs/different_libraries/database