Narito Paano Mga Pagsubok Panlabas na API sa Elixir na may Bypass

$config[ads_kvadrat] not found

paano iBypass Google Verification account ng walang PC

paano iBypass Google Verification account ng walang PC

Talaan ng mga Nilalaman:

Anonim

Inuuna namin ang mga prinsipyo ng Mga Serbisyo sa Tungkulin ng Serbisyo sa Serbisyo Kabaligtaran. Ito ay nangangahulugan na mayroon tayong maliit, mapanatili na mga sangkap na may malinaw na tinukoy na mga pananagutan. Nakikipag-usap sila sa isa't isa (karamihan), sa pamamagitan ng Representational State Transfer, o REST, API.

Nagbibigay ito ng kakayahang umangkop at nagsilbi sa amin ng mahusay na pagbubukod sa isang makabuluhang aspeto: Pagsubok. Kapag sinusubok, dapat isa iwasan ang:

  • Depende sa mga panlabas na serbisyo na tumatakbo sa parehong makina.
  • Mabagal na mga pagsubok.

Dahil ang mga application inherently umaasa sa mga panlabas na mga serbisyo, ito ay mahalaga upang magkaroon ng isang diskarte sa pagsubok sa lugar para sa mga dependencies.

Namin kamakailan nagsimula gamit ang Bypass at ipapaliwanag ko kung paano kami dumating doon at partikular na kung paano namin ginagamit ito.

Ang nakaraan

Mock pamamaraan at ibalik ang ilang halimbawa ng data tulad nito:

Iyon (at naniniwala ako ay pa rin) ang "paraan upang pumunta" sa mundo ng Ruby / Rails. Sa kasamaang palad, ito ay nagdudulot ng masamang pag-uugali bilang pinakamahusay na ipinaliwanag dito ni José Valim.

Pagkatapos ay sinimulan namin ang paggamit ng ExVCR, na isang mahusay na aklatan, ngunit may mga katulad na mga paghihirap bilang mga mock / stub: Hinihikayat nito ang katamaran at hindi nakakatulong sa paghihiwalay ng mga alalahanin na mahalaga sa mahusay na tinukoy API. Ang ExVCR ay nagbibigay-daan sa isa sa "record" at "pag-playback" ng real-live na data. Napakadali na isama (kasama ang ilang mga linya sa iyong pagsubok at lahat ng bagay ay inalagaan). Ngunit sa isip na mayroon kang mag-isip tungkol sa mga panlabas na dependency sa mga pagsubok, hindi abstract ang mga ito. Maaaring ito pa rin ay isang praktikal na pagpipilian para sa mga sitwasyon kapag ang endpoint na pag-uugali ay dapat na nasubukan na may minimal na overhead (ginagamit namin ito para sa pagsubok ng mga tawag sa AWS Services ng Amazon tulad ng S3).

Ipasok ang Mga Adaptor

Gumagana ang mga adaptor mahusay at itaguyod ang deliberasyon sa paligid ng mga kontrata API at malinaw na tinukoy na mga hangganan ng komunikasyon. Ginagamit pa rin namin ang diskarteng ito, lalo na kapag ang Adaptor ay mas kumplikado (tulad ng socket ng JSON-RPC).

Ito ang magiging hitsura ng isang Adaptor:

Ngunit para sa mga simpleng HTTP Endpoints, ang mga adaptor ay tila tulad ng maraming trabaho at may isang malaking disbentaha: Iniwan nila ang mga aklatan na kinain nila mula sa equation ng pagsubok. Kung ang anumang bagay sa mga HTTP o JSON na mga aklatan ay nagbabago, ang mga pagsubok ay hindi mahuli ito. Ang halaga ng kritikal na kritikal na produksyon na natitirang hindi pa natututuhan sa diskarteng ito ay hindi katanggap-tanggap.

Ang Kasalukuyan at Kinabukasan

Pinapayagan kami ng Bypass na magsimula ng isang napaka-simpleng web server sa mga pagsubok na gayahin ang mga panlabas na serbisyo na ginagamit namin.

Ngayon, maaari naming subukan ang buong stack, kabilang ang HTTP library, JSON encoding / decoding library, at mekanismo ng pagpapatunay. Ang Bypass README ay mahusay na isinulat, kaya gagawin ko ang ekstrang detalye ng pagpapatupad. Gayunpaman, bahagyang nagbabago kami kung paano namin ginagamit ito upang mapanatili ang mga pagsusulit nang maikli at nababasa:

Una, kung minsan gusto naming tumawag sa Facebook kapag ang mga pagsubok ay tumatakbo bilang isang ganap na suite ng pagsasama. Ginagawa namin ito nang iregular upang matiyak na ang Facebook API ay gumagana pa rin sa bawat aming mga inaasahan. Pagdaragdag - Isama ang pagsasama sa ihalo ang pagsubok hindi gayahin ang API ngunit, sa halip, tumatawag sa panlabas na serbisyo (mga linya 5, 7).

Kami ay tahasang kapag binibigyang-simula namin ang mga kahilingan sa mga panlabas na serbisyo upang ang bawat pagsubok na gumagamit ng Bypass ay dapat may @tag facebook_bypass (linya 7).

Sa wakas, ang handle_fb function (linya 30-39) ay tinatawag na (na ibinigay na ang request_path tugma). Gusto ko ng pagtutugma sa ulo ng pag-andar dahil ito ay malinaw na kung saan ang landas ay tumutugon tayo at nagpapahintulot sa amin na tukuyin ang iba't ibang mga pag-andar para sa iba't ibang mga landas.

Kaya ang Bypass ay tumatakbo sa mga pagsusulit na na-tag @tag: bypass at kapag hindi namin pinapatakbo ang aming integration suite. Ang isa pang bagay na ginagawa namin habang nag-set up ng Bypass ay nagpapahintulot sa tag na ipasa ang isang page id (linya 8, 20). Kaya dito ay kung paano ang isang pagsubok na gumagamit ng Bypass ay tumitingin sa lahat ng kaluwalhatian nito:

Tulad ng makikita mo, ang facebook_bypass ginagawang malinaw ng tag na sinusubaybayan namin ang API (maliban kung nasa mode ng pagsasama kami). Pinapayagan nitong ipasa ang impormasyon sa simula ng API, at napakadaling gamitin muli ang parehong Bypass config para sa iba't ibang mga pagsubok.

Umaasa ako na ito ay tumutulong sa iyo na subukan ang mga panlabas na API. Maaari mong makita ako sa Twitter (tingnan sa ibaba) kung mayroon kang anumang mga karagdagang katanungan.

$config[ads_kvadrat] not found