Autonomy dokumentatsioon
Integratsioonid

GitHubi rakendus

Käivita lihtsas keeles pull request'i kommentaarist käivitusi ning saa vastu üks automaatselt uuenev kommentaar ja kontrollkäivitus.

Autonomy GitHubi rakendus muudab pull request'i kommentaari käivituseks. Maini @autonomy ja kirjelda, mida soovid testida; Autonomy tuvastab testjuhtumid, sihtmärgi ja platvormid ning annab sealsamas tagasisidet — ühe kommentaariga, mida pidevalt uuendatakse, ja ühe kontrollkäivitusega.

See on vestlusliides. Töövoofailist käivitatavate konveierikäivituste kohta vaata GitHub Actions. Need kaks toimivad kõrvuti: kasuta Actionsit käivitusteks, mis peaksid toimuma iga tõuke korral, ja rakendust nendeks, mida ülevaataja palub.

Seadistamine

Enne alustamist

  • Paigalda Autonomy GitHubi rakendus hoidlatesse, mida soovid testida.
  • Veendu, et sul oleks vähemalt üks testjuhtum, mis töötab eelvaate- või staging-sihtmärgiga veatult.
  • Määra hoidla vaikimisi sihtmärk, et ilma täpsustusteta käsul oleks midagi käivitada.
  1. Ava töölaual Settings → Integrations ja ühenda GitHub.
  2. Anna rakendusele organisatsiooni või konto jaoks volitus ja vali hoidlad.
  3. Anna rakendusele taotletud õigused: Checks (lugemine ja kirjutamine), Pull requests (lugemine ja kirjutamine), Contents (lugemine), Deployments (lugemine).
  4. Valikuline, kuid soovitatav — määra jaotises GitHub Auto-Trigger Defaults igale hoidlale vaikimisi sihtmärk. Hoidla vaikeseadeks saab olla üks testjuhtum või üks testiplaan, mitte mõlemad.
  5. Kommenteeri mis tahes pull request'i all @autonomy help, et kontrollida, kas rakendus kuulab.

Käivituse alustamine

Maini @autonomy või alusta rida tekstiga /autonomy ja lisa, mida käivitada:

@autonomy test the checkout flow against the Vercel preview
@autonomy run plans "Signup", "Checkout" on staging and preview
@autonomy test this PR using https://deploy-preview-128.example.com
@autonomy rerun only the failed scenarios
@autonomy help

Autonomy parsib kommentaari esmalt deterministliku grammatika abil. Kui grammatika ei suuda tuvastada, milliseid testjuhtumeid mõtlesid, kasutab see varuvariandina keelemudelit, mis peab valima sinu tööruumis päriselt olemas olevate testjuhtumite ja keskkondade seast.

Selgesõnalised alistamised

Kõik, mille grammatika otse ära tunneb, läheb mudelist mööda:

AlistamineNäideMõju
plan: / plans:plans:"Signup", "Checkout"Määrab käivitatavad testjuhtumid või testiplaanid. Ilma eessõnata jutumärkides nimesid tõlgendatakse testiplaanide nimedena.
env: / environment: / environments:env:stagingSihib nimega määratud keskkondi.
url:url:https://preview.example.comSelgesõnaline HTTPS-sihtmärk.
platform: / platforms:platform:web,iosPiirab käivituse kindlate platvormidega.

Valikulised algusverbid — test, run, rerun, qa, check — muudavad käsu loomulikuks ja parser eirab neid. Samuti eiratakse keskkonna nime ees olevaid eessõnu on, in, against ja using.

Platvormisõnadel on aliased: browser, chrome, firefox, safari ja desktop tähendavad kõik veebi; iphone ja ipad tähendavad iOS-i; mobile tähendab iOS-i ja Androidi.

Kaks fraasi on eritähendusega. preview sihib pull request'i uusimat eelvaatejuurutust. rerun … failed või only … failed käivitab uuesti ainult eelmisel korral ebaõnnestunud stsenaariumid.

Kuidas sihtmärk valitakse

Kui sihtmärgi võiks anda mitu allikat, rakendab Autonomy järgmist tähtsuse järjekorda:

  1. Käsus selgesõnaliselt antud URL.
  2. Käsus nimega määratud keskkond.
  3. Pull request'i eelvaatejuurutus, kui taotleti preview.
  4. Keskkond, mille haruvastendaja vastab PR-i lähteharule.
  5. Hoidla vaikeseade.
  6. Tööruumi vaikeseade.
  7. Testjuhtumi enda vaikimisi sihtmärk.

Mida vastu saad

Ühe pull request'i kommentaari, mis luuakse käsu vastuvõtmisel ja mida käivituse edenedes kohapeal uuendatakse — iga uuenduse jaoks ei looda kunagi uut lõime. See sisaldab tõlgendatud käsku, käsu andjat, hinnangulist krediidikulu ning maatrikstabelit testjuhtum × sihtmärk × platvormid × olek koos süvalingiga iga käivituse tõendusmaterjalile. Kui testjuhtumi jaoks on seadistatud API-kinnitus, lisatakse kinnituse tulemus.

Ühe kontrollkäivituse nimega Autonomy QA: <summary> — näiteks Autonomy QA: 2 passed, 1 failed of 3. See liigub läbi olekute queuedin_progresscompleted ja lõpeb ühega järgmistest tulemustest:

  • success — kõik testid õnnestusid.
  • failure — vähemalt üks käivitus ebaõnnestus või täitmisel tekkis viga.
  • timed_out — käivitus ületas täitmise ajalimiidi.
  • cancelled — käivitused tühistati.
  • neutral — käsk lükati tagasi: seda ei saanud parsida, see oli mitmetähenduslik, ületas hargnemispiirangu või pärines volitamata kommenteerijalt.

Tagasilükkamised lõpevad tahtlikult tulemusega neutral. Vigane kommentaar ei tohiks mestimist blokeerida. Tegelikud tõrked lõpevad tulemusega failure ja blokeerivad harukaitse korral mestimise.

Kontrollkäivitusel on kaks toimingunuppu: Rerun failed scenarios ja Rerun all plans. Töötab ka GitHubi sisseehitatud korduskäivituse juhtelement.

Piirangud ja kaitsemeetmed

Loomuliku keele kasutamine on sihilikult piiratud:

  • Käivitusi saavad algatada ainult kaastöötajad. Kommenteerija peab olema hoidla omanik, liige või kaastöötaja. Robotite kommentaare eiratakse täielikult.
  • Mudel ei saa sihtmärke välja mõelda. See valib talle edastatud võimalike testjuhtumite ja keskkondade seast ning iga mudeli väljastatud URL peab esinema sinu kommentaaris täpselt samal kujul.
  • Tootmiskeskkond on kaitstud. Keskkonda, mille nimi näib viitavat tootmisele, ei valita kunagi, kui sa pole seda ise sisestanud.
  • Sihtmärgid peavad kasutama avalikku HTTPS-i. Tagasisideahela aadressid, privaatsed IP-vahemikud, .local hostid ja URL-i manustatud autentimisandmed lükatakse tagasi.
  • Madala kindluse korral keeldutakse. Kui mudel pole sinu mõttes piisavalt kindel, vastab Autonomy oletamise asemel süntaksisoovitusega.
  • Kommentaari tekst ei ole usaldusväärne. See edastatakse mudelile andmetena, mitte juhistena.
  • Hargnemine on piiratud kaheksa käivitusega päringu kohta. Käsk, mis laieneb sellest piirist kaugemale, lükatakse kärpimise asemel tagasi.

Pull request'i avamine üksi ei alusta käivitust. Käivitus algab siis, kui keegi kommenteerib või seadistatud päästik rakendub.

Käivitamine CI-st või oma tööriistadest

v1 toimingu-API võtab vastu selgesõnalisi testjuhtumi või testiplaani identifikaatoreid koos organisatsiooni API-võtmega, millel on skoop autonomy:runs:write. Mutatsioonide idempotentsusvõti asub JSON-kehas.

POST/api/v1/run.trigger
Requestjson
1{2  "testPlanId": "plan_...",3  "environmentSlug": "preview",4  "branch": "feature/checkout",5  "pr": "123",6  "idempotencyKey": "github:123456789:1"7}
Responsejson
1{2  "runIds": [3    "run_..."4  ],5  "planGroupRunId": "group_...",6  "environment": {7    "slug": "preview",8    "name": "Preview"9  }10}

Edasta täpselt üks väljadest testCaseId või testPlanId. Kasuta salvestatud keskkonna jaoks välja environmentSlug või konkreetse juurutuse või artefakti jaoks välja targets.

Too iga tagastatud käivitus, postitades selle ID toimingule run.get:

POST/api/v1/run.get
Requestjson
1{2  "runId": "run_..."3}

Tõrkeotsing

Kommenteerimisel ei juhtu midagi

Kontrolli, et rakendus oleks sellesse hoidlasse paigaldatud, et oleksid omanik, liige või kaastöötaja ning et mainimine oleks @autonomy või rida algaks tekstiga /autonomy. Kommenteeri @autonomy help, et kontrollida, kas rakendus saab sündmusi kätte.

Kommentaar ütleb, et testjuhtumit ei suudetud tuvastada

Määra see selgesõnaliselt süntaksiga plans:"Exact Name" või seadista jaotises GitHub Auto-Trigger Defaults hoidla vaikimisi sihtmärk, et ilma täpsustusteta käsul oleks midagi käivitada.

Käivitus sihtis valet keskkonda

Vaata läbi ülaltoodud tähtsuse järjekord. Kommentaaris selgesõnaliselt antud url: või env: on alati ülimuslik; kui sa kumbagi ei andnud, määras sihtmärgi tõenäoliselt haruvastendaja või hoidla vaikeseade.

Kontroll on punane, kuid miski pole katki

Vaata lõpptulemust. neutral tähendab, et käsk lükati tagasi, mitte et toode ebaõnnestus — põhjuse leiad kommentaari sisust. Ainult failure ja timed_out viitavad tegelikule käivitustulemusele.

On this page