API testlərinizi effektiv şəkildə avtomatlaşdırmaq üçün 10 addım

Bu yazını oxumadan əvvəl, ən azı aşağıdakı məsələlərdən birinə əmin olun:

  1. Problemləriniz var və ya hələ də API testlərini əl ilə həyata keçirirsiniz?
  2. REST API son nöqtələrinizi sınamaq üçün Postman / Yuxusuzluq / Paw ilə tez-tez QA / QE / TE / SET olaraq işləyirsiniz, çünki son nöqtələrinizi avtomatik olaraq necə sınamağınıza əmin deyilsiniz?
  3. Testi tətbiqdən ayırmaq istəyən QA / QE / TE / SET olaraq çalışırsınız?

Bu yazının əsas məqsədi yuxarıda göstərilən problemlərin hamısını API testini avtomatlaşdıraraq Jenkins CI-yə birləşdirməkdir. Bu iş üçün düzgün vasitələr və üsulları seçsəniz düşündüyünüzdən daha asandır.

QİYMƏTLƏR

  1. Node.js: Node.js, Chrome'un V8 JavaScript mühərrikinə əsaslanan JavaScript işləmə mühitidir. Node.js bir hadisəyə əsaslanan, bloklanmayan I / O modelini yüngül və səmərəli edir. Node.js paket ekosistemi, npm, açıq mənbə kitabxanaları üçün dünyanın ən böyük ekosistemidir.
  2. Mokka: Mokka, asenkron testi asanlaşdıran JavaScript test çərçivəsidir.
  3. Chai: Jasmine-dən fərqli olaraq, moçanı əlavə etmək üçün əlavə bir kitabxana istifadə edilməlidir. Chai, "təsdiqləmək", "gözləmək" və "lazımdır" daxil olmaqla ən yaxşı bəyəndiyiniz ifadə interfeysini seçməyə imkan verən bir təsdiq kitabxanasıdır.
  4. SuperTest: SuperTest SuperAgent, sadə HTTP AJAX tələblər kitabxanasının bir uzantısıdır. SuperTest, başa düşülən ifadələrlə node.j-in API son nöqtəli cavablarını test etmək üçün yüksək səviyyəli abstraksiyaları təmin edir.
  5. Docker: Docker, inkişaf etdiricilərin və sistem rəhbərlərinin noutbuklarda, məlumat mərkəzində VM-lərdə və ya buludda yayılmış tətbiqləri yarada, yerləşdirə və işlədə biləcəyi açıq bir platformadır.
  6. Jenkins CI: Jenkins Java-da yazılmış açıq mənbə avtomatlaşdırma serveridir. Jenkins, ümumi inteqrasiya kimi bu gün ümumi olan şeylərlə ümumi proqram inkişaf prosesinin insan olmayan hissəsini avtomatlaşdırmağa kömək edir, lakin komandalara davamlı bir tədarükün texniki hissəsini həyata keçirmək imkanı verir.

Bu dərs vəsaiti artıq aşağıdakıları ehtiva edir:

  1. Kompüterinizdə quraşdırılmış Node.js və Docker.
  2. Test etmək istədiyiniz API ilə tətbiqetmə artıq işləyir. (Budur nümunə tətbiqetməsidir https://github.com/rifkyalikiki/example-api-app)
  3. Jenkins CI artıq quraşdırılmışdır.

Gəlin başlayaq

  1. Test layihəniz qovluğunu yaradın. Məsələn: misal-api-test
  2. Bütün asılılıqları əlavə etmək üçün pack.json faylını yaradın.

3. Bu əmrləri işlədərək bütün asılılıqları quraşdırın.

cd sizin_test_project_folder npm quraşdırma -g Mokka npm quraşdırma

Node_modules qovluğu test layihəniz qovluğuna əlavə olunmalı və bütün bağlantılar uğurla quraşdırılmalıdır.

4. Test layihəniz qovluğunda bir test qovluğu yaradın.

cd sizin_test_project_fildiniz mkdir testi

Mocha'nın icra ediləcək test fayllarını tapa bilməsi üçün qovluğu test adlandırmaq lazımdır.

5. İlk API sınaq sənədinizi yaradın

Mocha fayllarınıza istədiyiniz hər hansı bir ad verə bilərsiniz. Bununla birlikdə, model dəstləri ilə əlaqəli bir neçə son nöqtəni sınaqdan keçirirsinizsə, onları "sizinModel_test.js" adlandırmağı məsləhət görürəm. Bu misal üçün, test qovluğunda bir user_test.js faylı yaradın. API URLinizi qlobal dəyişənə təyin etməyi də unutmayın. SuperTest ilə REST sorğuları etdiyiniz zaman bu dəyişənə zəng edirsiniz.

6. Bu əmrləri işə salmaqla ilk API testinizi işə salın

cd sizin_test_project_folder npm başlanğıc
və ya
cd sizin_test_project_fildiniz JUNIT_REPORT_PATH = test nəticəsi / nəticə

Budur test nəticəsi

Terminaldan test nəticələrinəticə.xml

7. Test runner əmrinizi yerləşdirmək üçün girişpoint.sh yaradın.

8. Jenkins CI-də istifadə ediləcək dok sənədini yaradın.

9. Jenkins iş əşyaları yaradın

Yeni Jenkins iş təklifiJenkins İş Məhsulu (1)Jenkins İş Məhsulu (2)Jenkins İş Məhsulu (3)

Əvvəlcə test nəticəsindəki xəbərdarlığı qulaqardına vura bilərsiniz. İş işə düşdükdən sonra yox olur.

Sonra işi yaratmaq üçün SAVE düyməsini vurun.

10. Jenkins işinizi işə salın və test nəticələrinə baxın.

Oyun düyməsini basaraq Jenkins işinə başlayınJenkins işindən test nəticəsi

Sınaq nəticələrim sizdən fərqlidir, çünki bu yazını yazdığım vaxtdan artıq iş görmüşəm.

Təbrik edirəm, indi API testinizi uğurla avtomatlaşdırmısınız. Növbəti yazıda öz test çərçivəmi yaratmaq fikrimə fikir verəcəyəm.

Əyləncəli test edin!

Mənbə: http://developmentnow.com/2015/02/05/make-your-node-js-api-bulletproof-how-to-test-with-mocha-chai-and-supertest/