TestMace. Hızlı başlangıç

TestMace. Hızlı başlangıç

Herkese selam. Yavaş yavaş gölgelerden çıkıp ürünümüzle ilgili yazı serimize devam ediyoruz. Sonrasında önceki Makaleyi incelediğimizde çok sayıda geri bildirim (çoğunlukla olumlu), öneriler ve hata raporları aldık. Bugün göstereceğiz TestTopuzu eylem halindeyken uygulamamızın bazı özelliklerini takdir edebileceksiniz. Daha kapsamlı bir deneyim için, adresindeki belgelerimize bakmanızı tavsiye ederim. http://docs-ru.testmace.com. O zaman hadi gidelim!

Montaj

Sıradanlıkla başlayalım. Uygulama mevcuttur ve aslında üç platformda test edilmiştir - Linux, Windows, MacOS. İlgilendiğiniz işletim sistemi için yükleyiciyi şuradan indirebilirsiniz: sitemiz. Linux kullanıcıları için kurulum mümkündür ek paket. Gerçekten Microsoft Store'un ve App Store'un yakında buna alışacağını umuyoruz (Gerekli mi? Ne düşünüyorsunuz?).

Deneysel senaryo

Test konumuz olarak aşağıdaki standart senaryoyu seçtik:

  • Giriş: kullanıcı - yönetici, şifre - şifre
  • yeni bir giriş ekle
  • Kaydın doğru şekilde eklendiğini kontrol edelim

Test edeceğiz https://testmace-quick-start.herokuapp.com/. Bu normal json sunucusu, bu tür uygulamaları test etmek için mükemmeldir. Tüm json-server rotalarına jetonla yetkilendirme ekledik ve bu jetonu almak için bir giriş yöntemi oluşturduk. Yavaş yavaş projemizi geliştirerek ilerleyeceğiz.

Bir proje oluşturmak ve yetkisiz bir varlık oluşturmaya çalışmak

Öncelikle yeni bir proje oluşturalım (fileto->Yeni proje). Uygulamayı ilk kez başlatıyorsanız otomatik olarak yeni bir proje açılacaktır. Öncelikle yeni bir kayıt oluşturmak için istekte bulunmayı deneyelim (kayıt oluşturmanın izinsiz olarak mümkün olması durumunda). Proje düğümü içerik menüsünden öğeleri seçin Düğüm ekleyin -> İstekAdım. Düğüm adını şu şekilde ayarlayın: oluştur-yayın. Sonuç olarak ağaçta yeni bir düğüm oluşturulacak ve bu düğüm için bir sekme açılacaktır. Aşağıdaki istek parametrelerini ayarlayalım:

TestMace. Hızlı başlangıç

Ancak isteği yerine getirmeye çalışırsak sunucu 401 kodunu döndürecek ve yetkilendirme olmadan bu sunucuya hiçbir şey alamayacağız. Genel olarak beklendiği gibi).

Yetkilendirme isteği ekleme

Daha önce de söylediğimiz gibi bir POST uç noktamız var /loginjson'u formun istek gövdesi olarak alır: {"username": "<username>", "password": "<password>"}Nerede username и password (yine yukarıdaki giriş paragrafından) anlamlara sahiptir admin и password sırasıyla. Yanıt olarak, bu uç nokta şunun gibi bir json döndürür: {"token": "<token>"}. Yetkilendirme için kullanacağız. Haydi yaratalım İstekAdım isimli düğüm giriş, bir ata gibi davranacak Proje düğüm Sürükle ve bırak yöntemini kullanarak ağaçtaki belirli bir düğümü düğümden daha yükseğe taşıyın oluştur-yayın. Yeni oluşturulan isteğe aşağıdaki parametreleri ayarlayalım:

İsteği yerine getirelim ve yanıttaki belirteçle birlikte iki yüzüncü kodu alalım. Bunun gibi bir şey:

TestMace. Hızlı başlangıç

Yeniden düzenleme: etki alanı çoğaltmasını kaldırma

Şu ana kadar istekler tek bir komut dosyasına bağlı değil. Ancak tek dezavantaj bu değil. Yakından bakarsanız, her iki istekte de en azından alan adının kopyalandığını fark edeceksiniz. İyi değil. Gelecekteki betiğin bu bölümünü yeniden düzenlemenin zamanı geldi ve değişkenler bu konuda bize yardımcı olacak.

İlk yaklaşıma göre, değişkenler diğer benzer araçlarda ve programlama dillerinde olduğu gibi aynı görevi görür; tekrarlamayı ortadan kaldırır, okunabilirliği artırır, vb. Değişkenler hakkında daha fazla bilgiyi şurada bulabilirsiniz: belgelerimiz. Bu durumda kullanıcı değişkenlerine ihtiyacımız olacak.

Proje düğümü düzeyinde bir değişken tanımlayalım domain anlamı olan https://testmace-quick-start.herokuapp.com... Bu gerektirir

  • Bu düğümün bulunduğu sekmeyi açın ve sağ üstteki hesap makinesi simgesine tıklayın
  • Tıklamak + DEĞİŞKEN EKLE
  • Değişken adını ve değerini girin
    Bizim durumumuzda eklenen değişkenin bulunduğu diyalog şöyle görünecektir:

TestMace. Hızlı başlangıç

TAMAM. Artık kalıtım nedeniyle bu değişkeni herhangi bir yuvalama düzeyinin alt öğelerinde kullanabiliriz. Bizim durumumuzda bunlar düğümlerdir giriş и oluştur-yayın. Bir metin alanında değişken kullanmak için şunu yazmanız gerekir: ${<variable_name>}. Örneğin, oturum açma URL'si şuna dönüştürülür: ${domain}/login, sırasıyla oluştur-yayın düğüm URL'si şöyle görünecek ${domain}/posts.

Böylece DRY ilkesinin rehberliğinde senaryoyu biraz iyileştirdik.

Belirteci bir değişkene kaydedin

Madem değişkenlerden bahsediyoruz bu konuyu biraz açalım. Şu anda, başarılı bir oturum açma durumunda, sunucudan sonraki isteklerde ihtiyaç duyacağımız bir yetkilendirme jetonu alıyoruz. Bu jetonu bir değişkene kaydedelim. Çünkü Değişkenin değeri betiğin yürütülmesi sırasında belirlenecektir, bunun için özel bir mekanizma kullanıyoruz - dinamik değişkenler.

Öncelikle bir giriş isteği gerçekleştirelim. Sekmede Ayrıştırılmış cevaplayın, imleci belirtecin üzerine getirin ve içerik menüsünde (farenin sağ tuşuyla veya düğmeye tıklayarak çağrılır ...) öğeyi seçin Değişkene ata. Aşağıdaki alanları içeren bir iletişim kutusu görünecektir:

  • Yol — cevabın hangi kısmının alındığı (bizim durumumuzda body.token)
  • Mevcut değer — Yol boyunca hangi değer bulunur (bizim durumumuzda bu belirteç değeridir)
  • Değişken ismi - değişkenin adı burada Mevcut değer muhafaza edilecektir. Bizim durumumuzda olacak token
  • Düğüm — değişkenin atalardan hangisinde yaratılacağı Değişken ismi. Projeyi seçelim

Tamamlanan diyalog şuna benzer:

TestMace. Hızlı başlangıç

Şimdi düğüm her yürütüldüğünde giriş dinamik değişken token yanıttaki yeni değerle güncellenecektir. Ve bu değişken saklanacak Proje düğüm ve miras sayesinde torunlara açık olacak.

Dinamik değişkenlere erişmek için şunu kullanmalısınız: yerleşik değişken $dynamicVar. Örneğin, saklanan bir jetona erişmek için aramanız gerekir. ${$dynamicVar.token}.

Yetkilendirme jetonunu isteklere aktarıyoruz

Önceki adımlarda yetkilendirme jetonunu aldık ve tek yapmamız gereken bir başlık eklemek Authorization anlamı olan Bearer <tokenValue> yetkilendirme gerektiren tüm taleplerde oluştur-yayın. Bunu yapmanın birkaç yolu vardır:

  1. Belirteci manuel olarak kopyalayın ve ilgilenilen isteklere bir yetkilendirme başlığı ekleyin. Yöntem işe yarıyor ancak kullanımı yalnızca "yapılan ve atılan" türden isteklerle sınırlıdır. Komut dosyalarının tekrar tekrar çalıştırılması için uygun değildir
  2. İşlevselliği kullanın yetki.
  3. Kullanmak varsayılan başlıklar

İkinci yöntemin kullanılması açık görünüyor, ancak bu makale bağlamında bu yaklaşım... ilgi çekici değil. Aslında: yetkilendirme mekanizması artı eksi size diğer araçlardan tanıdık geliyor (bunun gibi şeyler olsa bile) yetkilendirme mirası) ve soru sorması pek olası değildir.

Başka bir şey de varsayılan başlıklardır! Özetle, varsayılan üstbilgiler, açıkça devre dışı bırakılmadıkça isteğe varsayılan olarak eklenen, devralınan HTTP üstbilgileridir. Bu işlevselliği kullanarak, örneğin özel yetkilendirme uygulayabilir veya komut dosyalarındaki kopyalardan kurtulabilirsiniz. Başlıklara bir jeton geçirmek için bu özelliği kullanalım.

Daha önce, jetonu ihtiyatlı bir şekilde dinamik bir değişkene kaydetmiştik $dynamicVar.token Proje düğümü düzeyinde. Geriye kalan tek şey aşağıdakileri yapmaktır:

  1. Varsayılan başlığı tanımla Authorization anlamı olan Bearer ${$dynamicVar.token} Proje düğümü düzeyinde. Bunu yapmak için, düğümün Proje arayüzünde varsayılan başlıkları içeren bir iletişim kutusu açmanız gerekir (düğme Başlıkları sağ üst köşede) ve ilgili başlığı ekleyin. Doldurulmuş değerlerin bulunduğu diyalog şöyle görünecektir:
    TestMace. Hızlı başlangıç
  2. Oturum açma isteğinde bu başlığı devre dışı bırakın. Bu anlaşılabilir bir durumdur: Giriş yaptığınızda henüz bir jetonumuz yok ve bu istekle birlikte kuracağız. Bu nedenle, sekmedeki isteğin giriş arayüzünde Başlıkları bölgesinde Miras Yetkilendirme başlığının işaretini kaldırın.

Bu kadar. Artık yetkilendirme başlığı, oturum açma düğümü hariç, Proje düğümünün alt öğeleri olan tüm isteklere eklenecektir. Görünüşe göre bu aşamada zaten hazır bir senaryomuz var ve tek yapmamız gereken onu başlatmak. Komut dosyasını seçerek çalıştırabilirsiniz. koşmak Proje düğümünün içerik menüsünde.

Gönderi oluşturmanın doğruluğunu kontrol etme

Bu aşamada betiğimiz oturum açabilir ve bir yetkilendirme belirteci kullanarak bir gönderi oluşturabilir. Ancak yeni oluşturulan gönderinin adının doğru olduğundan emin olmamız gerekiyor. Yani aslında geriye kalan tek şey aşağıdakileri yapmaktır:

  • Kimliğe göre posta almak için istek gönderin,
  • Sunucudan alınan adın gönderiyi oluştururken gönderilen adla eşleşip eşleşmediğini kontrol edin

İlk adıma bakalım. Kimlik değeri komut dosyası yürütme sırasında belirlendiğinden, dinamik bir değişken oluşturmanız gerekir (buna diyelim) postId) düğümden oluştur-yayın Proje düğümü düzeyinde. Bunu nasıl yapacağımızı zaten biliyoruz, sadece bölüme bakın Belirteci bir değişkene kaydedin. Geriye kalan tek şey bu kimliği kullanarak gönderi alma isteği oluşturmak. Bunu yapmak için bir requestStep oluşturalım gönderi alma aşağıdaki parametrelerle:

  • İstek türü: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

İkinci adımı uygulamak için şunları tanımamız gerekir: Iddia düğüm. Onay düğümü, belirli istekler için çekler yazmanıza olanak tanıyan bir düğümdür. Her Onay düğümü birden fazla onay (kontrol) içerebilir. Her türlü iddia hakkında daha fazla bilgiyi sitemizden okuyabilirsiniz. belgeleme. Kullanacağız Compare operatör ile iddia equal. İddia oluşturmanın birkaç yolu vardır:

  1. Uzun. requestStep düğümünün bağlam menüsünden manuel olarak bir Onay düğümü oluşturun. Oluşturulan Onay düğümünde ilgi iddiasını ekleyin ve alanları doldurun.
  2. Hızlı. Bağlam menüsünü kullanarak, requestStep düğüm yanıtındaki bir onaylamayla birlikte bir Onay düğümü oluşturun

İkinci yöntemi kullanalım. Bizim durumumuz için böyle görünecek.

TestMace. Hızlı başlangıç

Anlamayanlar için olay şu:

  1. Düğümde bir istek yapın gönderi alma
  2. Sekmesinde Ayrıştırılmış cevaplayın, içerik menüsünü arayın ve seçin Onay oluştur -> Karşılaştırmak -> Eşit

Tebrikler, ilk testimizi oluşturduk! Basit, değil mi? Artık betiği tamamen çalıştırabilir ve sonucun tadını çıkarabilirsiniz. Geriye kalan tek şey onu biraz yeniden düzenlemek ve çıkarmak title ayrı bir değişkene dönüştürülür. Ama bunu size ödev olarak bırakacağız)

Sonuç

Bu kılavuzda tam teşekküllü bir senaryo oluşturduk ve aynı zamanda ürünümüzün bazı özelliklerini inceledik. Elbette tüm işlevselliği kullanmadık ve sonraki makalelerde TestMace'in yeteneklerine ayrıntılı bir genel bakış sunacağız. Bizi izlemeye devam edin!

Not: Tüm adımları tekrarlayamayacak kadar tembel olanlar için, nazikçe kaydettik havuz makaledeki projeyle. ile açabilirsiniz fileto -> Projeyi aç ve Proje klasörünü seçin.

Kaynak: habr.com

Yorum ekle