Skip to content

Iptv Assist

Learn More from us

Menu
  • HOW TO
  • Firestick
  • Chromecast
  • PC Apps
  • Lg Smart TV
  • IPTV Services
  • Automation Testing
  • Smart TV
  • Software Testing Tools
  • Contact Us
Menu

TestProject Python SDK Tutorial For Selenium & Appium Tests

Posted on March 26, 2023

Best Iptv Service Provider 2023 With 40k+ Channels And 100k+ VOD . 24/7 Suppport . Paypal Supported

TestProject Python SDK Tutorial: Supercharge Your Existing Selenium and Appium Based Tests

This Tutorial Will Help you Get Started with TestProject Python SDK. Learn to Install, Configure & Use SDK’s Most Powerful Features:

Best Iptv Service Provider 2023 With 40k+ Channels And 150k+ VOD . Hurry Up

Selenium and Appium have been among the most popular open-source testing frameworks for desktop browsers and mobile-based testing for years.

Recommended IPTV Service Providers

  1. IPTVGREAT – Rating 4.8/5 ( 600+ Reviews )
  2. IPTVRESALE – Rating 5/5 ( 200+ Reviews )
  3. IPTVGANG – Rating 4.7/5 ( 1200+ Reviews )
  4. IPTVUNLOCK – Rating 5/5 ( 65 Reviews )
  5. IPTVFOLLOW -Rating 5/5 ( 48 Reviews )
  6. IPTVTOPS – Rating 5/5 ( 43 Reviews )

 

The TestProject Python SDK builds on these tools and they provide you with the power of the TestProject platform, giving you beautiful HTML and PDF reports on their reporting platforms, automatic browser detection, driver configuration, and much more.

And the best thing is that using the TestProject platform and SDK is totally free, forever. The SDK is an open-source, too, so if you want to contribute to the project, you can!

TestProject Python SDK

What You Will Learn:

  • What is TestProject Python SDK?
    • Installation and Configuration
    • Creating Our First TestProject-powered Selenium Test
    • Inspecting Reports On The TestProject Platform
    • Reporting Customization Options with TestProject
    • Running Appium-based Tests Using TestProject
  • Conclusion

What is TestProject Python SDK?

In this tutorial, you will see how to get started with the TestProject Python SDK, how to leverage the TestProject platform with your existing Selenium and Appium-based tests, as well as how to use some of the SDK’s most powerful features.

Note: Are your tests written in a language other than Python? No need to worry, TestProject offers SDKs for Java and C# as well, with more languages coming in the near future.

Installation and Configuration

=> Visit this page for free TestProject signup

Python SDK is available on PyPI, the Python package index. Here, we are assuming that you have a working Python installation, all you need to do is to install the SDK and for that, you need to run the following command:

pip install testproject-python-sdk

This will install the SDK and its required dependencies, including Selenium and the Python Appium client.

Before we can start using the SDK, we need to do two more things.

#1) Install and configure the TestProject Agent on your machine:

The TestProject Agent is responsible for browser driver installation and configuration, as well as for sending reports generated by the SDK to the TestProject platform.

After you have created an account on the TestProject platform (again, this is free), you can download your Agent.

Download TestProject Agent

After downloading, you will need to install and start it. By default, the Agent runs on http://localhost:8585. If you want to run the Agent on a different port, or even on an entirely different machine, that’s no problem. In this case, all you need to do is specify the correct Agent address in an environment variable TP_AGENT_URL to let the SDK know where it’s running.

#2) Get and configure a developer token:

To communicate with the Agent, you will need a developer token, too. After installing the Agent, you can get your development token from the TestProject platform site as shown in the image below.

Get and configure a developer token

Specify your developer token in an environment variable TP_DEV_TOKEN to make the SDK aware of it. Alternatively, you can specify it as an argument when you create a new driver session, as we will see this in a bit.

After you have downloaded the SDK, installed, configured, and started the Agent, obtained and configured your developer token, you’re ready to go.

Creating Our First TestProject-powered Selenium Test

Let’s assume we have a Selenium-based test that navigates to the TestProject demo web app. It provides login credentials and checks that we are greeted to indicate that the login action has completed successfully. Let’s also assume that we use the Pytest unit testing framework to run this test and execute the assertions.

Such a test might look something like this:

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()

The example above uses Chrome as a browser. In addition to Chrome, the SDK also supports the following desktop browsers:

  • Firefox
  • Edge
  • Internet Explorer
  • Safari

For this example, we haven’t used any of the abstraction patterns that are common in Selenium-based tests, such as Page Objects, but if you do use these, that is no problem at all. In fact, we do recommend it, as this creates a clear separation between your test flow (actions, test data) and the implementation details of your web pages (element locators).

After the completion of all the installation and configuration steps shown above, all you need to do to turn this test into a TestProject-powered test is to replace the import statement as explained below.

from selenium import webdriver

Relace with this one:

from src.testproject.sdk.drivers import webdriver

That’s it! Once you run the test now, the SDK will request a driver instance from the TestProject Agent and use that to execute the test. It will also send reporting instructions to the TestProject platform, which are then used to create HTML reports. Let’s have a look at those!

Inspecting Reports On The TestProject Platform

Going to the TestProject, and selecting the ‘Reports’ options from the menu, you can see that a new report has been created for the test we have just run. Refer to the image below.

Inspecting reports on the TestProject

As you can see, the SDK has automatically inferred a project name (software_testing_help), a job name (examples), and a test name (test_login_to_testproject_example_app) and used these when creating the report. This is supported for both Pytest and Unittest, as well as for tests that are not run using a dedicated unit testing framework.

We’ll see how to specify the customized project, job, and test names, as well as a number of other useful reporting options in the next section.

All driver commands that have been executed during the test are automatically added to the report, together with their result. TestProject also generates overviews and dashboards out of the box.

Reporting Customization Options with TestProject

While TestProject generates rich and usable reports out of the box, there are a number of ways in which you can customize them to fit your information requirements even better.

As we have seen in the previous example, TestProject is able to automatically infer project, job, and test names for the most popular Python unit testing frameworks. If you want to use custom names in your reports, though, that can be done as well, in two different ways.

#1) Using a decorator

The TestProject SDK also features a @report decorator that you can use to decorate your test methods and that you can use to specify the custom project, job, and test names as shown below:

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

When we run this decorated test method and inspect the reports, we can see that the specified names have been used in the generated report, instead of the automatically inferred ones.

Using a decorator

#2) Specifying project and job names in the driver constructor and reporting a test manually:

Project and job names can also be overridden by specifying them in the constructor of the driver object. This can be done as follows:

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

If you want to override the automatically inferred test name, you can report a test manually at the end of the test, like this:

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()

If you choose to use the manual reporting option, you should disable automatic reporting of tests (which is enabled by default), to ensure that tests are not reported twice, which would corrupt your report and dashboards.

You can disable automatic reporting using the following command:

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

This will make the report look exactly the same as the last screenshot above.

#3) Disabling Reporting of Driver commands

If you don’t want your report to contain every individual driver command that was executed during the test, you can disable the automatic reporting of them like this:

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

You can also re-enable driver command reporting later in your tests by calling the same method again but with the argument disabled=False.

If you still want to report some intermediate steps during your test, you can do that as well:

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

As you can see, you can even add screenshots to your custom report steps. These will be integrated into the HTML report on the TestProject platform automatically.

Add screenshots to your custom report

The TestProject SDK offers more options to further customize your reporting. See the official documentation on the TestProject website, GitHub, or PyPI for a complete overview.

Running Appium-based Tests Using TestProject

Next to Selenium-based tests, the TestProject SDK can also run tests on mobile devices using Appium. Consider this example, running against a native Android app on an emulator:

from appium import webdriver
def test_native_android_app():
	
    desired_capabilities = {
        "appActivity": "io.testproject.demo.MainActivity",
        "appPackage": "io.testproject.demo",
        "udid": "<your emulator name goes here>",
        "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()

To use the power of the TestProject platform here, again, we only need to change

from appium import webdriver

To:

from src.testproject.sdk.drivers import webdriver

And we’re good to go. The TestProject Agent also acts as the Appium server, so there’s no more need to run that yourself on the machine that is running your tests.

All reporting features described above are also available for Appium-based tests.

SDK supports running mobile tests:

  • For Android as well as iOS.
  • On emulators as well as on real devices.
  • On native apps as well as mobile browsers

Examples of all of these can be found in the SDK code repository on GitHub.

Conclusion

As you have seen in this tutorial, the TestProject Python SDK can help you supercharge your existing Selenium- and Appium-based tests by taking away the chores of configuring your browser drivers and Appium server, and it generates great HTML reports and dashboard for you on the TestProject platform.

Best of all, the TestProject Python SDK is absolutely free of charge.

=> Head on over to TestProject to try it out for yourself!

About the Author: Bas Dijkstra

The author teaches companies around the world how to improve their testing efforts through test automation. He is an independent trainer, consultant, and developer living in the Netherlands. In his free time, he likes to take his bicycle for a ride, go for a run or read a good book.

Related

Best Iptv Service Provider 2023 With 40k+ Channels And 150k+ VOD . Hurry Up

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • IPTV List: Best iptv lista 2023
  • IPTV Premium: Best Premium IPTV Service Provider List And Benefits
  • Nikon IPTV Review: Over 10,000 Live Channels for $12/Month
  • Iptvwings. Com Review: +18000 Live IPTV Channels ,+70000 Movies, +40000 TV show For $15/1 month
  • IPTVUNO Review: More Than 16000 Live TV channels, 55,000 Movies & VOD For $15/Month

Recent Comments

  1. IPTV List: Play lista iptv 2022 - Iptv Assist on Best IPTV Player in 2023 for Watching Live TV
  2. Cola IPTV – Over 18,000 Live Channels for $12/Month - Iptv Assist on FileLinked – How to Install on Firestick/Fire TV and Android Devices
  3. Cola IPTV – Over 18,000 Live Channels for $12/Month - Iptv Assist on 50+ Best IPTV Service Providers for Streaming Live TV 2023
  4. XoomsTV IPTV – Over 11,000 Channels & VOD for Under $13/Month on Best VPN for IPTV in 2023 and How to Install on Firestick/Android
  5. Voodoo Streams IPTV Review – Over 12,000 Channels for $11/Month - Iptv Assist on Dynasty TV IPTV Review – Over 6,000 Channels for $10/Month

Archives

  • March 2023

Categories

  • Activate
  • Agile Testing
  • Alternatives
  • Android
  • APK
  • Apple TV
  • Automation Testing
  • Basics of Software Testing
  • Best Apps
  • Breakfast Hours
  • Bug Defect tracking
  • Career in Software Testing
  • Chromebook
  • Chromecast
  • Cross Platform
  • Database Testing
  • Delete Account
  • Discord
  • Error Code
  • Firestick
  • Gaming
  • General
  • Google TV
  • Hisense Smart TV
  • HOW TO
  • Interview Questions
  • iPhone
  • IPTV
  • IPTV Apps
  • Iptv Service SP
  • IPTV Services
  • JVC Smart TV
  • Kodi
  • Lg Smart TV
  • Manual Testing
  • MI TV
  • Mobile Testing
  • Mod APK
  • newestiptv.com
  • News
  • Nintendo Switch
  • Panasonic Smart TV
  • PC Apps
  • Performance Testing
  • Philips Smart TV
  • PS4
  • PS5
  • Python
  • QA Certifications
  • QA Leadership
  • QA Team Skills
  • Quality Assurance
  • Reddit
  • Reviews
  • Roku
  • Samsung Smart TV
  • Screenshot
  • Selenium Tutorials
  • Sharp Smart TV
  • Skyworth Smart TV
  • Smart TV
  • Soft Skills For Testers
  • Software Testing Templates
  • Software Testing Tools
  • Software Testing Training
  • Sony Smart TV
  • Sports
  • Streaming Apps
  • Streaming Devices
  • Tech News
  • Test Management Tools
  • Test Strategy
  • Testing Best Practices
  • Testing Concepts
  • Testing Methodologies
  • Testing News
  • Testing Skill Improvement
  • Testing Tips and Resources
  • Toshiba Smart TV
  • Tutorials
  • Twitch
  • Types of Testing
  • Uncategorized
  • Vizio Smart TV
  • VPN
  • Web Testing
  • What is
  • Xbox
©2023 Iptv Assist | Design: Newspaperly WordPress Theme