Testiautomaatio ei ole vain sovelluksen automatisointia. Sanoisin, että jo testitulosten jakaminen ohjelmallisesti tiimin kanssa on osa Testiautomaatiota. Joukkue ei siis ole riippuvainen kenestäkään yksilöstä saadakseen tuloksia. Tiimi voi myös ryhtyä jatkotoimiin testitulosten perusteella viipymättä.
tässä artikkelissa pohditaan, miten Slack-testituloksia voi jakaa. Myös miten voit käynnistää automaattisen testisarjan suorittamisen Jenkins/CI-työkalussasi.
Slack
käytämme Slackia organisaatiossamme. Saatat myös käyttää Slackia tiedon välittämiseen organisaatiosi tiimin jäsenten kesken. Slack on loistava työkalu ja se pitää kaikki ajan tasalla ja vähentää tarpeettomia sähköposteja.
Slack on yhteistyön solmukohta työnteolle riippumatta siitä, mitä työtä tekee. Siellä käydään keskusteluja, tehdään päätöksiä ja tieto on aina käden ulottuvilla. Slackin avulla tiimisi on paremmin yhteydessä toisiinsa.
voit käyttää tätä sovellusta On-off.site
Slack-Jenkins CI App-Integration
oletan, että useimmat meistä käyttävät Jenkinsiä jatkuvaan automaattiseen testaukseen. Joten tässä artikkelissa, olen antanut vaiheet integroida Jenkins ja Slack. Jos käytät muita työkaluja, kuten TeamCity, Bamboo, jne, prosessi on edelleen lähes sama.
Slack:
- mene https://slack.com
- Selaa ”Jenkins” – sovellusta
- Asenna Jenkins CI-sovellus löysään
- klikkaa ”Lisää Asetukset’
- tee merkintä team domainista ja Tokenista
- valitse kanava, jossa haluamme esittää tulokset
Jenkins
- Go to Manage Jenkins – > Manage Plugins – > Available Tab
- Install Slack Notification Plugin
- Update Slack domain and token => Manage Jenkins – > Configure System – > Global Slack Notifier Settings
- klikkaa ’Test Connection’ — sinun pitäisi nähdä’ menestys ’ viesti Jenkins ja alla viestin slack kanava.
Jenkins-Test Job
- Create a Jenkins job for Test
- Update the post-build actions as shown here-with the custom message you want
Jenkins PipeLine
you need to add a call to the plugin
slackSend color: 'good', message: 'Message from Jenkins Pipeline'
Next, we need to determine the right color and information text of the message:
def notifySlack(String buildStatus = 'STARTED') {
// Build status of null means success.
buildStatus = buildStatus ?: 'SUCCESS'
def color
if (buildStatus == 'STARTED') {
color = '#D4DADF'
} else if (buildStatus == 'SUCCESS') {
color = '#BDFFC3'
} else if (buildStatus == 'UNSTABLE') {
color = '#FFFE89'
} else {
color = '#FF9FA1'
}
def msg = "${buildStatus}: `${env.JOB_NAME}` #${env.BUILD_NUMBER}:\n${env.BUILD_URL}"
slackSend(color: color, message: msg)
}
node {
try {
notifySlack()
sh 'runbuild'
} catch (e) {
currentBuild.result = 'FAILURE'
throw e
} finally {
notifySlack(currentBuild.result)
}
}
Yhteenveto
osana jatkuvaa testausta suoritamme automaattiset skriptit Jenkinsin avulla määräajoin. Vain sinä testainsinöörinä tunnet tulokset. Muut tiimin jäsenet eivät välttämättä ole tietoisia testituloksista. Automatisoitujen työkalujen avulla voimme luoda automatisoituja skriptejä, ja Slack API: n avulla voimme jakaa tulokset ohjelmallisesti.
Uuden käyttäjän luominen
aloitetaan luomalla Jenkinsiin uusi käyttäjä Slackin käyttöön. Tee muistiin API token.
oletus on, että tällä löysällä käyttäjällä on riittävästi mahdollisuuksia käynnistää työ.
suorita alla oleva CURL-komento varmistaaksesi, voiko käyttäjä vedota tehtävään.
tämä on URL-osoitteen muoto. Korvaa sisältö asianmukaisilla tiedoilla.
curl -X POST http://@/job//build
minun tapauksessani yritin kuten tässä on esitetty.
curl -X POST http://slack:[email protected]:8080/job/TEST_SMOCK_SLACK_JOB_DEMO/build
Slack-Slash-komento
edellä mainittuun Jenkinsin tehtävään vedoten käyttäisimme Slackin slash-komentoja. Joten aina kun kirjoitat jotain kauttaviivan jälkeen-ex: ’/smoketests ’ – Slack käsittelee sitä komentona ja voi vastata komentoon. Niin, että esimerkiksi, Slack voidaan konfiguroida antamaan sääraportin oman kaupungin.
edellä mainittuun Jenkinsin työhön vedoten käyttäisimme Slackin slash-komentoja. Joten aina kun kirjoitat jotain kauttaviivan jälkeen-ex: ’/smoketests ’ – Slack käsittelee sitä komentona ja voi vastata komentoon. Niin, että esimerkiksi, Slack voidaan konfiguroida antamaan sääraportin oman kaupungin.
- Siirry Slack-asetuksiin ja lisää Slash-asetukset.
- aion luoda savutestikomennon — jotta tiimini voi laukaista slackista savutestin sovelluksen kunnon tarkistamiseksi.
- lisää integrointiasetus kuten tässä. Anna URL, johon meidän täytyy soittaa käynnistääksemme Jenkinsin työn.
- Valitse Automaattinen täydennysohje
- kun kokoonpano on valmis, voit tarkistaa välittömästi teidän löysällä. Kirjoita vain ’/S ’- voit nähdä’ smoketest ’ – komennon
- Käske tarkistaa, pystyykö Jenkins laukaisemaan tehtävän.
- jos työ vaatii parametrin, käytä alla olevaa URL-muotoa vedotaksesi työhön Oletusparametreilla.
curl -X POST http://@/job//buildWithParameters
- jos sinun on läpäistävä jokin tietty parametri, liitä muuttuja ja arvo parametriin.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
- jos haluat saada työn tilan/tuloksen, työ on määritettävä lähettämään tulokset takaisin Slackiin. Voit katsoa artikkelin siitä täältä.
Note
- jotta edellä mainittu lähestymistapa toimisi, Jenkinsin palvelimelle pitäisi olla Slack-yhteys. Varmista, että palomuuri ei estä sitä.
Yhteenveto
Slack-komennot ovat erittäin hyödyllisiä ja ne ovat käteviä saamaan tietoa tai laukaisemaan jotain, mitä saatat tehdä usein. Tekemällä tämän, kuka tahansa ei-tekninen käyttäjä tiimissä voi saada sinut käyttämään automaattisia testiskriptejä soittamalla suoraan slash-komentoon.