Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Dmitry is ainm dom, táim ag obair mar thástálaí sa chuideachta Eolaíocht MEL. Go leor le déanaí chríochnaigh mé ag déileáil le gné réasúnta nua ó Saotharlann tástála firebase — eadhon, le tástáil uirlise ar fheidhmchláir iOS ag baint úsáide as an gcreat tástála dúchais XCUITest.

Roimhe seo, bhain mé triail as Firebase Test Lab do Android cheana féin agus thaitin gach rud go mór liom, agus mar sin chinn mé iarracht a dhéanamh bonneagar tástála iOS an tionscadail a chur ar an mbonn céanna. Bhí orm go leor Google a dhéanamh agus níor oibrigh gach rud amach an chéad uair, agus mar sin chinn mé alt teagaisc a scríobh dóibh siúd atá fós ag streachailt.

Mar sin, má tá tástálacha Chomhéadain agat ar thionscadal iOS, is féidir leat triail a bhaint as iad a rith ar ghléasanna fíor inniu, arna soláthar go cineálta ag Good Corporation. Dóibh siúd a bhfuil suim acu, fáilte romhat chuig cat.

Sa scéal, chinn mé tógáil ar roinnt sonraí tosaigh - stór príobháideach ar GitHub agus córas tógála CircleCI. Is é AmazingApp ainm an fheidhmchláir, is com.company.amazingapp é bundleID. Cuirim na sonraí seo i láthair láithreach chun mearbhall a laghdú ina dhiaidh sin.

Má chuir tú réitigh áirithe i bhfeidhm i do thionscadal ar bhealach difriúil, roinn do thaithí sna tuairimí.

1. Na tástálacha iad féin

Cruthaigh brainse tionscadail nua le haghaidh tástálacha Chomhéadain:

$ git checkout develop
$ git pull
$ git checkout -b “feature/add-ui-tests”

Osclaímid an tionscadal in XCode agus cruthaímid Sprioc nua le tástálacha Chomhéadain [XCode -> Comhad -> Nua -> Sprioc -> Beart Tástála iOS], ag tabhairt an ainm féinmhínithe air AmazingAppUITests.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Téigh go dtí an rannán Tógáil Céimeanna den Sprioc cruthaithe agus seiceáil le haghaidh Spleáchais Sprioc - AmazingApp, i Foinsí Tiomsú - AmazingAppUITests.swift.

Dea-chleachtas is ea roghanna tógála éagsúla a dheighilt i Scéimeanna ar leith. Cruthaímid scéim dár dtástálacha Chomhéadain [XCode -> Táirge -> Scéim -> Scéim Nua] agus tugaimid an t-ainm céanna air: AmazingAppUITests.

Ní mór Sprioc an phríomhfheidhmchláir a chur san áireamh le tógáil na scéime cruthaithe - tástálacha AmazingApp agus Target UI - AmazingAppUITests - féach an scáileán scáileáin

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Ansin, cruthaímid cumraíocht tógála nua le haghaidh tástálacha Chomhéadain. In XCode, cliceáil ar an gcomhad tionscadail agus téigh go dtí an rannóg Info. Cliceáil ar “+” agus cruthaigh cumraíocht nua, mar shampla XCtest. Beidh sé seo de dhíth orainn sa todhchaí chun damhsa le tambóirín a sheachaint nuair a thagann sé le síniú cód.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Tá ar a laghad trí Sprioc i do thionscadal: an príomhfheidhmchlár, tástálacha aonaid (tar éis an tsaoil, tá siad ann, ceart?) agus na tástálacha Sprioc-Chomhéadain a chruthaigh muid.

Téigh go dtí Target AmazingApp, cluaisín Tóg Socruithe, rannóg Aitheantais Shínithe Cód. Le haghaidh cumraíocht XCtest, roghnaigh iOS Forbróir. Sa Stíl Comhartha Cód roinn, roghnaigh Lámhleabhar. Níl próifíl soláthair ginte againn go fóill, ach is cinnte go bhfillfimid air beagán níos déanaí.

Le haghaidh Target AmazingAppUITests déanaimid an rud céanna, ach sa cholún Aitheantóra Beart Táirge cuirimid isteach com.company.amazingappuitests.

2. Tionscadal a bhunú i gClár Forbróirí Apple

Téigh go dtí an leathanach Clár Forbróirí Apple, téigh go dtí an roinn Deimhnithe, Aitheantóirí & Próifílí agus ansin chuig colún App IDs na míre Aitheantóirí. Cruthaigh ID App nua ar a dtugtar AmazingAppUITests agus bundleID com.company.amazingappuitests.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Anois tá an deis againn ár dtástálacha a shíniú le teastas ar leith, ach... Is éard atá i gceist leis an nós imeachta maidir le tógáil le haghaidh tástála a chur le chéile ná an feidhmchlár féin a chur le chéile agus an rádala tástála a chur le chéile. Dá réir sin, táimid ag tabhairt aghaidhe ar an bhfadhb maidir le síniú dhá ID beart le próifíl soláthair amháin. Fortunately, tá réiteach simplí agus galánta - Wildcard App ID. Déanaimid an nós imeachta arís chun Aitheantas Aipe nua a chruthú, ach in ionad Aitheantais Aipe Sonraithe, roghnaigh Aitheantais Aipe saoróg mar atá sa screenshot.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Ag an bpointe seo, táimid críochnaithe ag obair le developer.apple.com, ach ní íoslaghdóidh muid an fhuinneog brabhsálaí. A ligean ar dul go dtí Suíomh doiciméadúcháin Fastlane agus léigh faoin áirgiúlacht Match ó chlúdach go clúdach.

Thug léitheoir aireach faoi deara go mbeidh orainn stór príobháideach agus cuntas a bhfuil rochtain aige ar Chlár Forbróirí Apple agus ar Github araon chun an áirgiúlacht seo a úsáid. Cruthaímid (mura bhfuil a leithéid ann go tobann) cuntas ar an bhfoirm [ríomhphost faoi chosaint], teacht suas le pasfhocal láidir, é a chlárú le developer.apple.com, agus é a cheapadh mar riarthóir tionscadail. Ansin, tugaimid rochtain don chuntas ar stór github do chuideachta agus cruthaímid stór príobháideach nua le hainm mar AmazingAppMatch.

3. Fastlane agus fóntais an chluiche a shocrú

Oscail teirminéal, téigh go dtí an fillteán leis an tionscadal agus tosaigh fastlane mar a léirítear i lámhleabhar oifigiúil. Tar éis dul isteach ar an ordú

$ fastlane init

Tabharfar leid duit na cumraíochtaí úsáide atá ar fáil a roghnú. Roghnaigh an ceathrú rogha - socrú tionscadail láimhe.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Tá eolaire nua fastlane ag an tionscadal, ina bhfuil dhá chomhad - Appfile agus Fastfile. Go hachomair, stóráilimid sonraí seirbhíse in Appfile, agus scríobhaimid poist in Fastfile, ar a dtugtar lánaí i dtéarmaí téarmaíochta Fastlane. Molaim na doiciméid oifigiúla a léamh: am, два.

Oscail an Appfile san eagarthóir téacs is fearr leat agus tabhair chuig an bhfoirm seo a leanas é:

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

Fillimid ar an teirminéal agus de réir an lámhleabhair oifigiúil tosaímid ar mheaitseáil a chumrú.

$ fastlane match init
$ fastlane match development

Ansin, cuir isteach na sonraí a iarrtar - stór, cuntas, pasfhocal, etc.

Tábhachtach: Nuair a sheolann tú an áirgiúlacht chluiche den chéad uair, iarrfar ort pasfhocal a chur isteach chun an stór a dhíchriptiú. Tá sé an-tábhachtach an pasfhocal seo a shábháil; beidh sé de dhíth orainn agus an freastalaí CI á shocrú!

Tá comhad nua le feiceáil san fhillteán fastlane - Matchfile. Oscail é san eagarthóir téacs is fearr leat agus taispeáin mar seo é:

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

Líonaimid amach é go díreach ar an mbealach seo más mian linn match a úsáid sa todhchaí chun foirgnimh a shíniú le taispeáint i Crashlytics agus/nó AppStore, is é sin, chun ID cuachta d'iarratais a shíniú.

Ach, de réir mar a chuimhnímid, chruthaíomar aitheantas speisialta saoróg chun an tógáil tástála a shíniú. Mar sin, oscail Fastfile agus cuir isteach lána nua:

lane :testing_build_for_firebase do

    match(
      type: "development",
      readonly: true,
      app_identifier: "com.company.*",
      git_branch: "uitests"  # создаем отдельный бранч для development сертификата для подписи тестовой сборки.
    )

end

Sábháil agus cuir isteach sa chríochfort

fastlane testing_build_for_firebase

agus feicimid conas a chruthaigh fastlane teastas nua agus é a chur sa stór. Go hiontach!

Oscail XCode. Anois tá an phróifíl soláthair riachtanach againn den fhoirm Match Development com.company.*, a chaithfear a shonrú sa rannóg um phróifíl Soláthar do na spriocanna AmazingApp agus AmazingAppUITests.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Tá sé fós le lána a chur le chéile chun tástálacha a chur le chéile. A ligean ar dul go dtí stór tionscadal breiseán do fastlane a éascaíonn onnmhairiú chuig Firebase Test Lab a shocrú agus na treoracha a leanúint.

Déanaimis cóip den sampla bunaidh ionas go mbeidh cuma mar seo ar ár lána testing_build_for_firebase:


 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

Chun faisnéis iomlán a fháil faoi fastlane a bhunú in CircleCI, molaim an doiciméadú oifigiúil a léamh amanna, два.

Ná déan dearmad tasc nua a chur lenár 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. Cad mar gheall ar ár mbinse tástála? Suiteáil Firebase.

Déanaimis síos ar cad chuige ar scríobhadh an t-alt.

B'fhéidir go n-úsáideann d'aip Firebase ar phlean saor in aisce, nó b'fhéidir nach bhfuil sé ar chor ar bith. Níl aon difríocht bhunúsach ann, mar gheall ar riachtanais tástála is féidir linn tionscadal ar leith a chruthú le bliain úsáide saor in aisce (fionnuar, ceart?)

Logálaimid isteach inár gcuntas bonneagair (nó cuntas ar bith eile, is cuma), agus rachaimid chuig Leathanach consól firebase. Cruthaigh tionscadal nua darb ainm AmazingAppUITests.

Tábhachtach: Sa chéim roimhe seo sa Fastfile in lane firebase_test_lab_ios_xctest ba cheart go mbeadh an paraiméadar gcp_project ag teacht le hainm an tionscadail.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Oireann na socruithe réamhshocraithe go maith dúinn.

Ná dún an cluaisín, cláraigh faoin gcuntas céanna i Gcloud - is beart riachtanach é seo, ós rud é go dtarlaíonn cumarsáid le Firebase ag baint úsáide as an gcomhéadan consól cloud.

Tá $300 á thabhairt ag Google ar feadh bliana, rud atá comhionann le bliain úsáid saor in aisce den tseirbhís i gcomhthéacs na n-uaththástálacha a dhéanamh. Cuirimid d'fhaisnéis íocaíochta isteach, fanaimid leis an dochar tástála de $1 agus faighimid $300 chuig do chuntas. Tar éis bliana, déanfar an tionscadal a aistriú go huathoibríoch chuig plean taraife saor in aisce, agus mar sin ní gá a bheith buartha faoi chaillteanas airgid a d'fhéadfadh a bheith ann.

Fillfimid ar an táb leis an tionscadal Firebase agus é a aistriú chuig plean taraif Blaze - anois tá rud éigin le híoc againn má sháraítear an teorainn.

Sa chomhéadan cloud, roghnaigh ár dtionscadal Firebase, roghnaigh an mhír príomh-roghchlár “Eolaire” agus cuir an Cloud Testing API agus Cloud Tools Result API leis.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Ansin téigh go dtí an mhír roghchláir “IAM agus riarachán” -> Cuntais seirbhíse -> Cruthaigh cuntas seirbhíse. Deonaimid cearta chun an tionscadal a chur in eagar.

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Cruthaigh eochair API i bhformáid JSON

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal

Beidh an JSON íoslódála ag teastáil uainn beagán níos déanaí, ach faoi láthair beimid ag smaoineamh ar an socrú Test Lab a bheith críochnaithe.

5. Ciorcal a chur ar bun

Éiríonn ceist réasúnta - cad atá le déanamh le pasfhocail? Cabhróidh meicníocht athróg timpeallachta ár n-inneall tógála linn ár bpasfhocail agus sonraí íogaire eile a stóráil go slán. I socruithe tionscadail CircleCI, roghnaigh Athróga Comhshaoil

Reáchtálaimid tástálacha uirlise i Firebase Test Lab. Cuid 1: iOS tionscadal
Agus cuir na hathróga seo a leanas ar bun:

  • eochair: GOOGLE_APPLICATION_CREDENTIALS
    luach: inneachar an chomhaid json d'eochair chuntais na seirbhíse cloud
  • eochair: MATCH_PASSWORD
    luach: pasfhocal chun an stór github a dhíchriptiú le teastais
  • eochair: FASTLANE_PASSWORD
    luach: Pasfhocal cuntas bonneagair Tairseach Forbróir Apple

Sábhálaimid na hathruithe, cruthaímid PR agus cuirimid chuig ár gceannaire foirne é le haghaidh athbhreithnithe.

Torthaí

Mar thoradh ar na hionramhálacha simplí seo, fuaireamar seastán maith cobhsaí oibre a raibh an cumas físeáin a thaifeadadh ar scáileán an fheiste tráth na tástála. Sa sampla tástála, shonraigh mé an tsamhail gléas iPhone X, ach soláthraíonn an fheirm rogha saibhir ó mheascán de mhúnlaí éagsúla agus leaganacha iOS.

Beidh an dara cuid dírithe ar shocrú céim ar chéim de Firebase Test Lab do thionscadal Android.

Foinse: will.com

Add a comment