Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Dmitry no anarako, miasa toy ny tester ao amin'ny orinasa aho Siansa MEL. Vao haingana aho no nahavita niatrika endri-javatra somary vao haingana avy amin'ny Firebase Test Lab - izany hoe, miaraka amin'ny fitsapana fitaovana amin'ny rindranasa iOS amin'ny alΓ lan'ny rafi-panadinana teratany XCUITest.

Talohan'izay, efa nanandrana Firebase Test Lab ho an'ny Android aho ary tena tiako ny zava-drehetra, ka nanapa-kevitra ny hanandrana hametraka ny fotodrafitrasa fitsapana iOS amin'ny tetikasa aho. Tsy maintsy nanao Google be dia be aho ary tsy nahomby ny zava-drehetra tamin'ny voalohany, ka nanapa-kevitra ny hanoratra lahatsoratra fampianarana ho an'ireo izay mbola sahirana aho.

Noho izany, raha manana fitsapana UI amin'ny tetikasa iOS ianao, dia afaka manandrana mihazakazaka azy ireo amin'ny fitaovana tena izy ankehitriny, nomen'ny Good Corporation. Ho an'izay liana dia tongasoa eto amin'ny saka.

Tao anatin'ny tantara dia nanapa-kevitra ny hanangana angon-drakitra voalohany aho - tahiry manokana ao amin'ny GitHub sy ny rafitra fananganana CircleCI. AmazingApp ny anarana fampiharana, bundleID dia com.company.amazingapp. Atolotro avy hatrany ity angon-drakitra ity mba hampihenana ny fisafotofotoana manaraka.

Raha nampihatra vahaolana sasany tao amin'ny tetikasanao ianao dia zarao amin'ny fanehoan-kevitra ny traikefanao.

1. Ny fitsapana mihitsy

Mamorona sampana tetikasa vaovao ho an'ny fitsapana UI:

$ git checkout develop
$ git pull
$ git checkout -b β€œfeature/add-ui-tests”

Andao hanokatra ny tetikasa ao amin'ny XCode ary mamorona Target vaovao miaraka amin'ny fitsapana UI [XCode -> File -> New -> Target -> iOS Testing Bundle], manome azy ny anarana manazava tena AmazingAppUITests.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Mandehana any amin'ny fizarana Build Phases amin'ny Target noforonina ary jereo ny fisian'ny Target Dependencies - AmazingApp, ao amin'ny Compile Sources - AmazingAppUITests.swift.

Ny fomba fanao tsara dia ny manasaraka ireo safidy fananganana samihafa ho Tetika samihafa. Mamorona drafitra ho an'ny fitsapana UI izahay [XCode -> Product -> Scheme -> New Scheme] ary manome azy io anarana mitovy: AmazingAppUITests.

Ny fananganana ny drafitra noforonina dia tsy maintsy ahitana ny Tanjona amin'ny fampiharana lehibe - AmazingApp sy Target UI fitsapana - AmazingAppUITests - jereo ny pikantsary

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Manaraka izany dia mamorona tefy fananganana vaovao ho an'ny fitsapana UI izahay. Ao amin'ny XCode, tsindrio ny rakitra tetikasa ary mandehana any amin'ny fizarana Info. Tsindrio eo amin'ny "+" ary mamorona fanovana vaovao, ohatra XCtest. Mila izany isika amin'ny ho avy mba hialana amin'ny dihy amin'ny ampongatapaka amin'ny fanaovana sonia kaody.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Misy Tanjona telo farafahakeliny ao amin'ny tetikasanao: ny fampiharana lehibe, ny andrana vondrona (rehefa misy izy ireo, sa tsy izany?) ary ny andrana Target UI noforoninay.

Mandehana any amin'ny Target AmazingApp, Build Settings tab, Code Signing Identity section. Ho an'ny fanamafisana XCtest, mifidiana iOS Developer. Ao amin'ny fizarana Code Signing Style, mifidiana Manual. Tsy mbola namorona ny mombamomba ny famatsiana izahay, fa tena hiverina amin'izany izahay aoriana kely.

Ho an'ny Target AmazingAppUITests dia manao toy izany koa izahay, fa ao amin'ny tsanganana Product Bundle Identifier dia miditra amin'ny com.company.amazingappuitests izahay.

2. Mametraka tetikasa ao amin'ny Apple Developer Program

Mandehana any amin'ny pejy Apple Developer Program, mandehana any amin'ny fizarana Certificates, Identifiers & Profiles ary avy eo amin'ny tsanganana App IDs amin'ny Identifiers. Mamorona ID App vaovao antsoina hoe AmazingAppUITests sy bundleID com.company.amazingappuitests.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Amin'izao fotoana izao isika dia manana fahafahana hanao sonia ny fitsapana amin'ny alalan'ny taratasy fanamarinana manokana, fa ... Ny dingana amin'ny fanangonana trano ho an'ny fitsapana dia ny fanangonana ny fampiharana sy ny fanangonana ny mpihazakazaka fitsapana. Noho izany, miatrika olana amin'ny fanasoniavana karapanondro roa miaraka amin'ny mombamomba ny provision iray izahay. Soa ihany fa misy vahaolana tsotra sy kanto - Wildcard App ID. Averinay ny fomba hamoronana ID App vaovao, fa raha tokony ho ID App Explicit, safidio ny ID App Wildcard toy ny eo amin'ny pikantsary.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Amin'izao fotoana izao dia vita ny fiaraha-miasa amin'ny developer.apple.com, saingy tsy hanamaivana ny varavarankelin'ny navigateur izahay. Andao ho any Tranonkala fanadihadiana Fastlane ary vakio ny momba ny fampitaovana Match hatramin'ny voalohany ka hatramin'ny farany.

Mpamaky malina iray nahatsikaritra fa ny fampiasana an'io fitaovana io dia mila tahiry manokana sy kaonty misy fidirana amin'ny Apple Developer Program sy Github. Mamorona (raha tsy misy tampoka) kaonty momba ny endrika [email voaaro], mamorona tenimiafina matanjaka, misoratra anarana amin'ny developer.apple.com, ary tendreo ho mpitantana tetikasa. Manaraka izany dia omenay ny fidirana amin'ny tranokala github an'ny orinasanao ny kaonty ary mamorona tahiry manokana vaovao miaraka amin'ny anarana toa an'i AmazingAppMatch.

3. Fametrahana Fastlane sy ny fampitaovana lalao

Sokafy ny terminal, mandehana any amin'ny lahatahiry miaraka amin'ny tetikasa ary manomboka ny fastlane araka ny voalaza ao boky ofisialy. Rehefa avy niditra ny baiko

$ fastlane init

Asaina ianao hisafidy ny fampiasa ampiasaina. Safidio ny safidy fahefatra - fanamboarana tetikasa manual.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Ny tetikasa dia manana lahatahiry fastlane vaovao, izay misy rakitra roa - Appfile sy Fastfile. Raha fintinina dia mitahiry angon-drakitra momba ny serivisy ao amin'ny Appfile izahay, ary manoratra asa ao amin'ny Fastfile, antsoina hoe lanes amin'ny teny Fastlane. Manoro hevitra aho hamaky ny antontan-taratasy ofisialy: fotoana, Π΄Π²Π°.

Sokafy ny Appfile amin'ny tonian-dahatsoratra tianao indrindra ary ento amin'ity endrika manaraka ity:

app_identifier "com.company.amazingapp"       # Bundle ID
apple_dev_portal_id "[email protected]"  # Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ инфраструктурный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²ΠΎ Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ iOS ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Apple Developer Program.
team_id "LSDY3IFJAY9" # Your Developer Portal Team ID

Miverina any amin'ny terminal izahay ary araka ny boky ofisialy dia manomboka manamboatra lalao.

$ fastlane match init
$ fastlane match development

Avy eo, ampidiro ny angona angatahina - tahiry, kaonty, tenimiafina, sns.

Zava-dehibe ny: Rehefa manomboka ny fampitaovana lalao ianao, dia angatahina ianao hampiditra tenimiafina hamadika ny tahiry. Tena zava-dehibe ny mitahiry ity tenimiafina ity; mila izany izahay rehefa manangana ny mpizara CI!

Nisy rakitra vaovao niseho tao amin'ny lahatahiry fastlane - Matchfile. Sokafy amin'ny tonian-dahatsoratra tianao indrindra ary asehoy toy izao:

git_url("https://github.com/YourCompany/AmazingAppMatch") #Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для хранСния сСртификатов ΠΈ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΎΠ².
type("development") # The default type, can be: appstore, adhoc, enterprise or development
app_identifier("com.company.amazingapp")
username("[email protected]") # Your Infrastructure account Apple Developer Portal username

Toy izao no fenoinay izany raha te hampiasa lalao amin'ny ho avy izahay hanasonia fananganana ho aseho ao amin'ny Crashlytics sy/na AppStore, izany hoe hanasonia ny ID fehezin'ny fampiharanao.

Saingy, araka ny tsaroanay, namorona ID Wildcard manokana izahay hanasonia ny fananganana fitsapana. Noho izany, sokafy ny Fastfile ary midira lalana vaovao:

lane :testing_build_for_firebase do

    match(
      type: "development",
      readonly: true,
      app_identifier: "com.company.*",
      git_branch: "uitests"  # создаСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Ρ€Π°Π½Ρ‡ для development сСртификата для подписи тСстовой сборки.
    )

end

Tehirizo ary midira ao amin'ny terminal

fastlane testing_build_for_firebase

ary hitantsika ny fomba namoronan'i fastlane taratasy fanamarinana vaovao ary napetrany tao amin'ny tahiry. Mahafinaritra!

Sokafy ny XCode. Ankehitriny dia manana ny mombamomba ny famatsiana ilaina amin'ny endrika Match Development com.company izahay.*, izay tsy maintsy voafaritra ao amin'ny fizarana mombamomba ny provisioning ho an'ny tanjona AmazingApp sy AmazingAppUITests.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Mbola ilaina ny manampy lalana ho an'ny fitsapana fanangonana. Andao ho any repository tetikasa plugin ho an'ny fastlane izay manamora ny fametrahana fanondranana any amin'ny Firebase Test Lab ary manaraka ny torolalana.

Andao handika-mametaka avy amin'ny ohatra tany am-boalohany mba hahatonga ny lane testing_build_for_firebase ho toy izao:


 lane :testing_build_for_firebase do

    match(
      type: "development",
      readonly: true,
      app_identifier: "com.company.*",
      git_branch: "uitests"
    )

    scan(
      scheme: 'AmazingAppUITests',      # UI Test scheme
      clean: true,                        # Recommended: This would ensure the build would not include unnecessary files
      skip_detect_devices: true,          # Required
      build_for_testing: true,            # Required
      sdk: 'iphoneos',                    # Required
      should_zip_build_products: true,     # Must be true to set the correct format for Firebase Test Lab
    )

    firebase_test_lab_ios_xctest(
      gcp_project: 'AmazingAppUITests', # Your Google Cloud project name (ΠΊ этой строчкС вСрнСмся ΠΏΠΎΠ·ΠΆΠ΅)
      devices: [                          # Device(s) to run tests on
        {
          ios_model_id: 'iphonex',        # Device model ID, see gcloud command above
          ios_version_id: '12.0',         # iOS version ID, see gcloud command above
          locale: 'en_US',                # Optional: default to en_US if not set
          orientation: 'portrait'         # Optional: default to portrait if not set
        }
      ]
    )

  end

Raha mila fampahalalana feno momba ny fametrahana fastlane ao amin'ny CircleCI dia manoro hevitra aho hamaky ny antontan-taratasy ofisialy fotoana Π΄Π²Π°.

Aza adino ny manampy asa vaovao amin'ny config.yml:

build-for-firebase-test-lab:
   macos:
     xcode: "10.1.0"   
   working_directory: ~/project
   shell: /bin/bash --login -o pipefail
   steps:
     - checkout
     - attach_workspace:
         at: ~/project
     - run: sudo bundle install     # обновляСм зависимости
     - run:
         name: install gcloud-sdk   # Π½Π° mac ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ gcloud
         command: |
           ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null
           brew cask install google-cloud-sdk
     - run:
         name: build app for testing
         command: fastlane testing_build_for_firebase  # запускаСм lane сборки ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² firebase

4. Ahoana ny momba ny dabilio fitsapana? Fametrahana Firebase.

Andeha hojerentsika hoe inona no nanoratana ilay lahatsoratra.

Angamba mampiasa Firebase amin'ny drafitra maimaim-poana ny fampiharanao, na mety tsy izany mihitsy. Tsy misy fahasamihafana fototra mihitsy, satria ho an'ny filΓ na fitsapana dia afaka mamorona tetikasa mitokana miaraka amin'ny taona fampiasana maimaim-poana (mangatsiaka, sa tsy izany?)

Midira ao amin'ny kaontintsika fotodrafitrasa (na hafa, tsy maninona izany), ary mandehana any Pejy fampiononana Firebase. Mamorona tetikasa vaovao antsoina hoe AmazingAppUITests.

Zava-dehibe ny: Ao amin'ny dingana teo aloha ao amin'ny Fastfile amin'ny lane firebase_test_lab_ios_xctest ny gcp_project parameter dia tokony hifanaraka amin'ny anaran'ny tetikasa.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Ny firafitry ny default dia mifanaraka tsara aminay.

Aza manakatona ny tabilao, misoratra anarana amin'ny kaonty mitovy amin'ny Gcloud - fepetra ilaina izany, satria ny fifandraisana amin'ny Firebase dia mitranga amin'ny alΓ lan'ny gcloud console interface.

Manome $300 isan-taona i Google, izay ao anatin'ny tontolon'ny fanaovana autotest dia mitovy amin'ny taona fampiasana maimaim-poana ny serivisy. Ampidiro ny fampahalalana momba ny fandoavanao, miandry ny fandoavana andrana $1 ary mahazo $300 ao amin'ny kaontinao. Aorian'ny herintaona dia hafindra ho azy amin'ny drafitrasa maimaim-poana ny tetikasa, noho izany dia tsy ilaina ny manahy momba ny mety ho fahaverezan'ny vola.

Andao hiverina amin'ny tabilao miaraka amin'ny tetikasa Firebase ary hamindra izany amin'ny drafitry ny vidin'ny Blaze - manana zavatra tokony haloana isika izao raha mihoatra ny fetra.

Ao amin'ny interface gcloud, safidio ny tetikasa Firebase, safidio ny singa fototra "Directory" ary ampio ny Cloud Testing API sy Cloud Tools Result API.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Avy eo dia mandehana any amin'ny sakafo "IAM sy fitantanana" -> Kaonty serivisy -> Mamorona kaonty serivisy. Omenay zo hanova ny tetikasa.

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Mamorona fanalahidy API amin'ny endrika JSON

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa

Mila ny JSON alaina vetivety izahay, fa amin'izao fotoana izao dia hodinihintsika ny fametrahana ny Test Lab.

5. Fametrahana CircleCI

Mipoitra ny fanontaniana mitombina - inona no atao amin'ny tenimiafina? Ny mekanika miovaova amin'ny tontolo iainana amin'ny milina fanamboarana dia hanampy antsika hitahiry ny tenimiafinay sy angona saropady hafa. Ao amin'ny sehatry ny tetikasa CircleCI, mifidiana Variables Environment

Manao fitsapana fitaovana ao amin'ny Firebase Test Lab izahay. Fizarana 1: iOS tetikasa
Ary amboary ireto variables manaraka ireto:

  • fanalahidy: GOOGLE_APPLICATION_CREDENTIALS
    sanda: ao anatin'ny rakitra json an'ny fanalahidin'ny kaonty serivisy gcloud
  • fanalahidy: MATCH_PASSWORD
    sanda: tenimiafina amin'ny famongorana ny tahiry github miaraka amin'ny fanamarinana
  • fanalahidy: FASTLANE_PASSWORD
    sanda: tenimiafina kaonty fotodrafitrasa Apple Developer Portal

Mitahiry ny fanovana izahay, mamorona PR ary mandefa izany any amin'ny mpitarika ny ekipanay hojerena.

vokatra

Vokatr'ireo fanodinkodinana tsotra ireo dia nahazo toeram-piasana tsara sy azo antoka izahay miaraka amin'ny fahafahana mirakitra horonantsary amin'ny efijery amin'ny fitaovana amin'ny fotoana fitsapana. Ao amin'ny ohatra fitsapana dia nanondro ny modely fitaovana iPhone X aho, fa ny toeram-pambolena dia manome safidy manankarena avy amin'ny fitambaran'ny modely samihafa sy ny dikan-iOS.

Ny ampahany faharoa dia natokana ho an'ny fametrahana tsikelikely ny Firebase Test Lab ho an'ny tetikasa Android.

Source: www.habr.com

Add a comment