Compétence TestRail API
Intégration directe de l'API REST TestRail via des wrappers bash locaux au dépôt.
Installation
Clonez d'abord le dépôt :
git clone https://github.com/kos322/testrail-skill.git
cd testrail-skill
Configuration
Définissez ces variables d'environnement :
TESTRAIL_URLTESTRAIL_USERTESTRAIL_API_KEY
URL de base :
${TESTRAIL_URL}/index.php?/api/v2
Arbre de décision
PROJECT_IDconnu + question simple en lecture seule : appelez directement le wrapper approprié.PROJECT_IDinconnu : appelez./scripts/get_projects.sh.- Problème d'environnement/auth ou première installation : appelez
./scripts/doctor.sh.
Requêtes courantes
# ID de projet connu : nombre total de cas
./scripts/count_cases.sh PROJECT_ID [SECTION_ID] [--suite SUITE_ID]
# ID de projet connu : liste complète des cas avec pagination automatique
./scripts/list_cases.sh PROJECT_ID [SECTION_ID] [--suite SUITE_ID]
# ID de projet connu : page de cas brute avec pagination
./scripts/get_cases.sh PROJECT_ID [SECTION_ID] [--suite SUITE_ID]
# À tout moment : lire un cas
./scripts/get_case.sh CASE_ID | jq -r .title
# Champ unique sans analyse JSON manuelle
./scripts/get_case_field.sh CASE_ID FIELD
# Raccourci pour les préconditions
./scripts/get_case_precondition.sh CASE_ID
# ID de projet inconnu : découvrir les projets accessibles
./scripts/get_projects.sh | jq '(.projects // .) | map({id, name})'
# Problème de configuration/auth : valider l'environnement et l'accès
./scripts/doctor.sh
Wrappers privilégiés
scripts/count_cases.sh— comptage fiable du nombre total de casscripts/list_cases.sh— liste complète des cas avec pagination automatiquescripts/get_cases.sh— réponse de cas brute paginéescripts/get_case.sh— recherche d'un seul casscripts/get_case_field.sh— recherche d'un seul champscripts/get_case_precondition.sh— raccourci pour les préconditionsscripts/get_projects.sh— découvrir les projets accessiblesscripts/doctor.sh— vérification rapide de la configuration/authscripts/create_run.sh,scripts/add_result*.sh,scripts/close_run.sh— flux d'exécution/résultatscripts/get_reference_data.sh— statuts, champs, modèles, utilisateurs
Contrats de sortie
| Intention | Commande | Sortie |
|---|---|---|
| nombre total de cas | count-cases | entier simple |
| liste de cas | list-cases | texte simple par défaut : C{id}: {title} |
| liste structurée de cas | list-cases --format json | objet JSON avec count et cases |
| un cas | get-case | objet JSON du cas |
| un champ d'un cas | get-case-field | scalaire/chaîne simple ou JSON compact pour tableaux/objets |
| précondition d'un cas | get-case-precondition | texte simple / valeur brute du champ |
Pagination
- Les endpoints
get_cases,get_runs,get_results*, etc., peuvent être paginés. - Ne supposez pas que
.sizeest un total fiable à moins que_links.nextne soit vide. - Utilisez
./scripts/count_cases.shlorsque la question est « combien y a-t-il de cas ? »
Windows
- Recommandé : Git Bash / WSL.
- Environnement PowerShell uniquement : utilisez les wrappers légers dans
powershell/. - Les wrappers PowerShell ne font que lancer les scripts bash ; ils ne lisent pas eux-mêmes le fichier
.env.
.\powershell\count-cases.ps1 1
.\powershell\list-cases.ps1 1
.\powershell\list-cases.ps1 1 --format json
.\powershell\get-case.ps1 93
.\powershell\get-case-field.ps1 2 custom_preconds
.\powershell\get-case-precondition.ps1 2
.\powershell\get-cases.ps1 1 10 --suite 1
.\powershell\get-sections.ps1 1 1
.\powershell\get-runs.ps1 1
Documentation à la demande
scripts/README.md— utilisation script par scriptdocs/api-reference.md— notes sur les endpoints et formes des payloadsdocs/troubleshooting.md— échecs de configuration et d'authentificationdocs/agent-guide.md— guide d'exécution spécifique à l'agentdocs/maintenance/endpoint-status.md— instantané de maintenance, pas un guide d'exécution
Exemples
examples/workflow_ci.shexamples/workflow_plans_milestones.shexamples/workflow_attachments.sh
Documentation officielle de l'API : https://support.testrail.com/hc/en-us/categories/7076541806228-API-Manual