Skip to the content.

MasterQA

pypi Build Status

MasterQA combines SeleniumBase automation with manual verification to greatly improve the productivity and sanity of QA teams.

(NOTE: MasterQA is now part of SeleniumBase!)

Run the example test:

pip install masterqa

git clone https://github.com/masterqa/MasterQA.git

cd MasterQA/examples

pytest masterqa_test.py  # (Default browser: Chrome)

Follow the example to write your own tests:

from seleniumbase import MasterQA

class MasterQATests(MasterQA):
    def test_xkcd(self):
        self.open("https://xkcd.com/1512/")
        for i in range(4):
            self.click('a[rel="next"]')
        for i in range(3):
            self.click('a[rel="prev"]')
        self.verify()

        self.open("https://xkcd.com/1520/")
        for i in range(2):
            self.click('a[rel="next"]')
        self.verify("Can you find the moon?")

        self.click('a[rel="next"]')
        self.verify("Do the drones look safe?")

        self.open("https://seleniumbase.io/devices/")
        self.type("input#urlInput", "seleniumbase.io/error_page\n")
        self.verify("Do you see Octocat in a Jedi knight robe?")

        self.open("https://xkcd.com/213/")
        for i in range(5):
            self.click('a[rel="prev"]')
        self.verify("Does the page say 'Abnormal Expressions'?")

You’ll notice that tests are written based on SeleniumBase, with the key difference of using a different import: from masterqa import MasterQA rather than from seleniumbase import BaseCase. Now the test class will import MasterQA instead of BaseCase.

To add a manual verification step, use self.verify() in the code after each part of the script that needs manual verification. If you want to include a custom question, add text inside that call (in quotes). Example:

self.verify()

self.verify("Can you find the moon?")

MasterQA is powered by SeleniumBase, the most advanced open-source automation platform on the Planet.