testproject python sdk tutorial
TestProject Python SDK Eğitimi: Mevcut Selenyum ve Uygulama Tabanlı Testlerinizi GüçlendirinBu Eğitim, TestProject Python SDK ile Başlamanıza Yardımcı Olacaktır. SDK’nın En Güçlü Özelliklerini Kurmayı, Yapılandırmayı ve Kullanmayı Öğrenin:
Selenium ve Appium, yıllardır masaüstü tarayıcılar ve mobil tabanlı testler için en popüler açık kaynaklı test çerçeveleri arasındadır.
TestProject Python SDK bu araçlar üzerine kuruludur ve TestProject platformunun gücünü size sağlayarak raporlama platformları, otomatik tarayıcı algılama, sürücü yapılandırması ve çok daha fazlası hakkında güzel HTML ve PDF raporları sunar.
Ve en iyisi, TestProject platformunu ve SDK'yı kullanmak sonsuza kadar tamamen ücretsiz olmasıdır. SDK da bir açık kaynaktır, bu nedenle projeye katkıda bulunmak istiyorsanız, yapabilirsiniz!
Ne öğreneceksin:
TestProject Python SDK nedir?
Bu eğiticide, TestProject Python SDK ile nasıl başlayacağınızı, TestProject platformunu mevcut Selenium ve Appium tabanlı testlerinizle nasıl kullanacağınızı ve SDK’nın en güçlü özelliklerinden bazılarını nasıl kullanacağınızı göreceksiniz.
Not : Testleriniz Python dışında bir dilde mi yazılmış? Endişelenmenize gerek yok, TestProject yakın gelecekte daha fazla dil ile Java ve C # için de SDK'lar sunuyor.
Kurulum ve Yapılandırma
=> Ücretsiz TestProject kaydı için bu sayfayı ziyaret edinPython SDK şu cihazlarda mevcuttur: PyPI , Python paket dizini. Burada, çalışan bir Python kurulumunuz olduğunu varsayıyoruz, yapmanız gereken tek şey SDK'yı kurmak ve bunun için yapmanız gereken aşağıdaki komutu çalıştırın:
pip install testproject-python-sdk
Bu, SDK'yı ve Selenium ve Python Appium istemcisi dahil olmak üzere gerekli bağımlılıklarını kuracaktır.
SDK'yı kullanmaya başlamadan önce iki şey daha yapmamız gerekiyor.
# 1) Makinenize TestProject Aracısını kurun ve yapılandırın:
TestProject Aracısı, tarayıcı sürücüsü kurulumundan ve yapılandırmasından ve ayrıca SDK tarafından oluşturulan raporları TestProject platformuna göndermekten sorumludur.
Üzerinde bir hesap oluşturduktan sonra Test Projesi platform (yine bu ücretsizdir), Agent'ınızı indirebilirsiniz.
İndirdikten sonra, kurmanız ve başlatmanız gerekecektir. Varsayılan olarak, Aracı, http: // localhost: 8585. Aracıyı farklı bir bağlantı noktasında veya hatta tamamen farklı bir makinede çalıştırmak istiyorsanız, bu sorun değil. Bu durumda tek yapmanız gereken, bir ortam değişkeninde doğru Aracı adresini belirtmektir. TP_AGENT_URL SDK'nın nerede çalıştığını bilmesini sağlamak için.
# 2) Bir geliştirici jetonu alın ve yapılandırın:
Temsilci ile iletişim kurmak için bir geliştirici jetonuna da ihtiyacınız olacak. Aracıyı kurduktan sonra, geliştirme jetonunuzu TestProject platform sitesinden aşağıdaki resimde gösterildiği gibi alabilirsiniz.
Geliştirici simgenizi bir ortam değişkeninde belirtin TP_DEV_TOKEN SDK'nın bundan haberdar olmasını sağlamak. Alternatif olarak, bunu birazdan göreceğimiz gibi, yeni bir sürücü oturumu oluşturduğunuzda bunu bir argüman olarak belirtebilirsiniz.
SDK'yı indirdikten, Aracıyı yükledikten, yapılandırdıktan ve başlattıktan, geliştirici simgenizi edindikten ve yapılandırdıktan sonra, kullanıma hazırsınız.
İlk TestProje Destekli Selenyum Testimizi Oluşturma
TestProject demo web uygulamasına giden Selenium tabanlı bir testimiz olduğunu varsayalım. Oturum açma kimlik bilgilerini sağlar ve oturum açma işleminin başarıyla tamamlandığını belirtmek için karşılandığımızı kontrol eder. Ayrıca bu testi çalıştırmak ve iddiaları yürütmek için Pytest birim testi çerçevesini kullandığımızı varsayalım.
Böyle bir test şunun gibi görünebilir:
from selenium import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.quit()
Yukarıdaki örnek, tarayıcı olarak Chrome'u kullanır. SDK, Chrome'a ek olarak aşağıdaki masaüstü tarayıcılarını da destekler:
- Firefox
- Kenar
- Internet Explorer
- Safari
Bu örnek için, Sayfa Nesneleri gibi Selenyum tabanlı testlerde yaygın olan soyutlama modellerinin hiçbirini kullanmadık, ancak bunları kullanırsanız, bu hiç sorun değil. Aslında, test akışınız (eylemler, test verileri) ile web sayfalarınızın uygulama ayrıntıları (öğe bulucular) arasında net bir ayrım oluşturduğu için bunu tavsiye ediyoruz.
Yukarıda gösterilen tüm kurulum ve yapılandırma adımları tamamlandıktan sonra, bu testi TestProject destekli bir teste dönüştürmek için yapmanız gereken tek şey, aşağıda açıklandığı gibi import ifadesini değiştirmektir.
from selenium import webdriver
Bununla bağlantı kurun:
from src.testproject.sdk.drivers import webdriver
Bu kadar! Testi şimdi çalıştırdığınızda, SDK, TestProject Aracısından bir sürücü örneği isteyecek ve testi yürütmek için bunu kullanacaktır. Ayrıca, daha sonra HTML raporları oluşturmak için kullanılacak olan TestProject platformuna raporlama talimatları gönderecektir. Şunlara bir göz atalım!
Test Projesi Platformunda Raporların İncelenmesi
TestProject'e gidip menüden 'Raporlar' seçeneklerini seçerek, az önce çalıştırdığımız test için yeni bir rapor oluşturulduğunu görebilirsiniz. Aşağıdaki resme bakın.
cpu sıcaklığını izlemek için en iyi yazılım
Gördüğünüz gibi, SDK otomatik olarak bir proje adı ( software_testing_help ), bir iş adı ( örnekler ) ve bir test adı ( test_login_to_testproject_example_app ) ve bunları raporu oluştururken kullandı. Bu, hem Pytest hem de Unittest için ve ayrıca özel bir birim testi çerçevesi kullanılarak çalıştırılmayan testler için desteklenir.
Bir sonraki bölümde özelleştirilmiş proje, iş ve test adlarının yanı sıra bir dizi başka yararlı raporlama seçeneklerini nasıl belirleyeceğimizi göreceğiz.
Test sırasında yürütülen tüm sürücü komutları, sonuçlarıyla birlikte otomatik olarak rapora eklenir. TestProject ayrıca kutudan çıkar çıkmaz genel bakışlar ve kontrol panelleri oluşturur.
TestProject ile Özelleştirme Seçeneklerini Raporlama
TestProject, kutudan çıkar çıkmaz zengin ve kullanışlı raporlar üretirken, bunları bilgi gereksinimlerinize daha da iyi uyacak şekilde özelleştirmenin birkaç yolu vardır.
Önceki örnekte gördüğümüz gibi TestProject, en popüler Python birim test çerçeveleri için proje, iş ve test adlarını otomatik olarak çıkarabilir. Raporlarınızda özel isimler kullanmak istiyorsanız, bu da iki farklı şekilde yapılabilir.
# 1) Bir dekoratör kullanmak
TestProject SDK ayrıca bir @bildiri test yöntemlerinizi süslemek için kullanabileceğiniz ve kullanabileceğiniz dekoratör aşağıda gösterildiği gibi özel proje, iş ve test adlarını belirtin:
from src.testproject.sdk.drivers import webdriver from src.testproject.decorator import report @report(project='Software Testing Help', job='SDK Examples', test='Login Test') def test_login_to_testproject_example_app(): driver = webdriver.Chrome() # the rest of the test method remains unchanged
Bu dekore edilmiş test yöntemini çalıştırdığımızda ve raporları incelediğimizde, oluşturulan raporda otomatik olarak çıkarsananlar yerine belirtilen isimlerin kullanıldığını görebiliriz.
# 2) Sürücü kurucusunda proje ve iş adlarını belirleme ve bir testi manuel olarak raporlama:
Proje ve iş adları, sürücü nesnesinin yapıcısında belirtilerek de geçersiz kılınabilir. Bu şöyle yapılabilir:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') # the rest of the test method remains unchanged
Otomatik olarak çıkarılan test adını geçersiz kılmak istiyorsanız, testin sonunda aşağıdaki gibi manuel olarak bir testi rapor edebilirsiniz:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.report().test(name='Login Test', passed=True) driver.quit()
Manuel raporlama seçeneğini kullanmayı seçerseniz, testlerin iki kez raporlanmamasını sağlamak için testlerin otomatik raporlamasını devre dışı bırakmalısınız (varsayılan olarak etkindir), bu da raporunuzu ve gösterge tablolarınızı bozabilir.
Aşağıdaki komutu kullanarak otomatik raporlamayı devre dışı bırakabilirsiniz:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_auto_test_reports(disabled=True) # the rest of the test method remains as above
Bu, raporun yukarıdaki son ekran görüntüsü ile tamamen aynı görünmesini sağlayacaktır.
# 3) Sürücü komutlarının Raporlanmasını Devre Dışı Bırakma
Raporunuzun test sırasında yürütülen her bir sürücü komutunu içermesini istemiyorsanız, aşağıdaki gibi otomatik raporlamayı devre dışı bırakabilirsiniz:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) # the rest of the test method remains unchanged
Ayrıca, aynı yöntemi tekrar çağırarak, ancak devre dışı = False bağımsız değişkeni ile testlerinizde sürücü komut raporlamasını yeniden etkinleştirebilirsiniz.
Testiniz sırasında yine de bazı ara adımları bildirmek istiyorsanız, bunu da yapabilirsiniz:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) driver.report().step(description='An intermediate step', message='A custom message', passed=True, screenshot=True) # here goes the rest of the test method
Gördüğünüz gibi, özel rapor adımlarınıza ekran görüntüleri bile ekleyebilirsiniz. Bunlar, TestProject platformundaki HTML raporuna otomatik olarak entegre edilecektir.
TestProject SDK, raporlamanızı daha da özelleştirmek için daha fazla seçenek sunar. Tam bir genel bakış için TestProject web sitesi, GitHub veya PyPI'deki resmi belgelere bakın.
TestProject Kullanarak Uygulama Tabanlı Testleri Çalıştırma
Selenium tabanlı testlerin yanında TestProject SDK, Appium kullanan mobil cihazlarda da testler çalıştırabilir. Bir emülatörde yerel bir Android uygulamasına karşı çalışan şu örneği düşünün:
from appium import webdriver def test_native_android_app(): desired_capabilities = { 'appActivity': 'io.testproject.demo.MainActivity', 'appPackage': 'io.testproject.demo', 'udid': '', 'browserName': '', 'platformName': 'Android', } driver = webdriver.Remote(desired_capabilities=desired_capabilities) driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() driver.quit()
TestProject platformunun gücünü burada tekrar kullanmak için, sadece değişmemiz gerekiyor
from appium import webdriver
Kime:
from src.testproject.sdk.drivers import webdriver
Ve gitmeye hazırız. TestProject Aracısı aynı zamanda Appium sunucusu olarak da hareket eder, bu nedenle testlerinizi çalıştıran makinede kendiniz çalıştırmanıza gerek kalmaz.
Yukarıda açıklanan tüm raporlama özellikleri, Appium tabanlı testler için de mevcuttur.
SDK, mobil testlerin çalıştırılmasını destekler:
- Android ve iOS için.
- Emülatörlerde ve gerçek cihazlarda.
- Yerel uygulamalarda ve mobil tarayıcılarda
Tüm bunların örnekleri GitHub'daki SDK kod deposunda bulunabilir.
Sonuç
Bu eğiticide gördüğünüz gibi, TestProject Python SDK, tarayıcı sürücülerinizi ve Appium sunucunuzu yapılandırma işlerini ortadan kaldırarak mevcut Selenium ve Appium tabanlı testlerinizi güçlendirmenize yardımcı olabilir ve sizin için harika HTML raporları ve gösterge tablosu oluşturur. TestProject platformu.
Hepsinden iyisi, TestProject Python SDK kesinlikle ücretsizdir.
=> Şuraya gidin: Kendiniz denemek için TestProject !
Yazar Hakkında: Bas Dijkstra
Yazar, dünya çapındaki şirketlere test otomasyonu yoluyla test çabalarını nasıl geliştireceklerini öğretiyor. Hollanda'da yaşayan bağımsız bir eğitmen, danışman ve geliştiricidir. Boş zamanlarında bisiklete binmeyi, koşuya çıkmayı veya iyi bir kitap okumayı sever.
Önerilen Kaynaklar
- TestProject Test Otomasyon Aracı Uygulamalı İnceleme Eğitimi
- Python Giriş ve Kurulum Süreci
- Android Uygulaması için Appium Testleri Oluşturun
- Yeni Başlayanlar İçin Python Eğitimi (Uygulamalı ÜCRETSİZ Python Eğitimi)
- Eclipse için Appium Studio Kullanarak Appium Testlerinizi Paralel Olarak Çalıştırma
- Epochs Studio for Eclipse kullanarak çağ testleri oluşturma
- Paralelde Appium Testlerinin Büyük Ölçekli Yürütülmesi Nasıl Yapılır
- Appium Testlerinizi Çalıştırmak için IDE'nize Entegre Edin