Metadata-Version: 2.4
Name: masterqa
Version: 1.10.1
Summary: Automation-Assisted Manual Testing - https://masterqa.com
Home-page: https://github.com/masterqa/MasterQA
Author: Michael Mintz
Author-email: mdmintz@gmail.com
Maintainer: Michael Mintz
License: MIT
Project-URL: Homepage, https://github.com/masterqa/MasterQA
Project-URL: Download, https://pypi.org/project/masterqa/#files
Project-URL: PyPI, https://pypi.org/project/masterqa/
Project-URL: Source, https://github.com/masterqa/MasterQA
Project-URL: Repository, https://github.com/masterqa/MasterQA
Platform: Windows
Platform: Linux
Platform: Mac OS-X
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: seleniumbase>=4.39.4
Requires-Dist: pdbp>=1.7.0
Requires-Dist: tabcompleter>=1.4.0
Requires-Dist: sbvirtualdisplay>=1.4.0
Dynamic: author
Dynamic: author-email
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: platform
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# MasterQA

[![pypi](https://img.shields.io/pypi/v/masterqa.svg)](https://pypi.python.org/pypi/masterqa) [![Build Status](https://github.com/masterqa/MasterQA/workflows/CI%20build/badge.svg)](https://github.com/masterqa/MasterQA/actions)

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

## (NOTE: **[MasterQA is now part of SeleniumBase!](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/masterqa)**)

![](https://seleniumbase.io/cdn/img/mqa_hybrid.png "MasterQA")

### Run the example test:

```bash
pip install masterqa

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

cd MasterQA/examples

pytest masterqa_test.py  # (Default browser: Chrome)
```

![](https://seleniumbase.io/cdn/gif/masterqa6.gif "MasterQA")

### Follow the [example](https://github.com/masterqa/MasterQA/blob/master/examples/masterqa_test.py) to write your own tests:

```python
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](https://seleniumbase.io), 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:

```python
self.verify()

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

MasterQA is powered by [SeleniumBase](https://seleniumbase.io), the most advanced open-source automation platform on the [Planet](https://en.wikipedia.org/wiki/Earth).
