SeleniumBase/examples/ReadMe.md

182 lines
5.2 KiB
Markdown
Executable File

[<img src="https://seleniumbase.io/cdn/img/sb_logo_10t.png" title="SeleniumBase" width="240">](https://github.com/seleniumbase/SeleniumBase/)
<h2><img src="https://seleniumbase.io/img/logo6.png" title="SeleniumBase" width="32" /> Running Example Tests:</h2>
<p align="left"><a align="center" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py"><img align="center" src="https://seleniumbase.io/cdn/img/sb_demo_page.png" alt="SeleniumBase Demo Page" width="420" /></a></p>
* <b>SeleniumBase</b> tests are run with <b>pytest</b>.
* Chrome is the default browser if not specified.
* Tests are structured using [17 unique syntax formats](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md).
* Logs from test failures are saved to ``./latest_logs/``.
* Tests can be run with [multiple command-line options](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md).
* Example tests are found in: **[SeleniumBase/examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples)**.
(NOTE: Some example tests fail on purpose to demonstrate [logging features](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/example_logs/ReadMe.md).)
<h3><img src="https://seleniumbase.io/img/logo6.png" title="SeleniumBase" width="32" /> Example tests with run commands to help you get started:</h3>
Run an example test in Chrome: (Default: ``--browser=chrome``)
```bash
pytest my_first_test.py
```
Run an example test in Firefox:
```bash
pytest my_first_test.py --browser=firefox
```
Run an example test in Demo Mode: (highlight assertions)
```bash
pytest my_first_test.py --demo
```
<img src="https://seleniumbase.io/cdn/gif/my_first_test_2.gif" title="SeleniumBase Demo Mode" /><br />
Run a different example in Demo Mode:
```bash
pytest test_swag_labs.py --demo
```
<img src="https://seleniumbase.io/cdn/gif/swag_demo_3.gif" /><br />
Run an example test in Headless Mode: (invisible browser)
```bash
pytest my_first_test.py --headless
```
Run an example test using Chrome's mobile device emulator: (default settings)
```bash
pytest test_swag_labs.py --mobile
```
<img src="https://seleniumbase.io/cdn/gif/swag_mobile_2.gif" title="SeleniumBase Mobile Mode" /><br />
Run tests with verbose output: (includes more details)
```bash
pytest test_suite.py -v
```
Run a test on the Demo Site to try many SeleniumBase methods:
```bash
pytest test_demo_site.py
```
<img src="https://seleniumbase.io/cdn/gif/demo_page_2.gif" title="SeleniumBase Demo Page" /><br />
Run tests multi-threaded using [n] threads:
```bash
pytest test_suite.py -n=4
```
Run a parameterized test: (Generates multiple tests from one)
```bash
pytest parameterized_test.py -v
```
Run a test suite and generate a SeleniumBase Dashboard:
```bash
pytest test_suite.py --dashboard
```
Run a test suite and generate a pytest report:
```bash
pytest test_suite.py --html=report.html
```
Run a failing test: (See the ``latest_logs/`` folder for logs and screenshots)
```bash
pytest test_fail.py
```
Run a failing test with Debug-mode enabled: (``pdb`` activates on failures)
```bash
pytest test_fail.py --pdb -s
```
Run an example test suite that demonstrates the use of pytest markers:
```bash
pytest -m marker_test_suite -v
```
Run an example test suite that reuses the browser session between tests:
```bash
pytest test_suite.py --reuse-session
```
Run an example test demonstrating the ``rate_limited`` Python decorator:
```bash
pytest rate_limiting_test.py
```
Run an example test that demonstrates how to upload a file to a website:
```bash
pytest upload_file_test.py
```
--------
<b>SeleniumBase tests can also be run with ``nosetests``:</b>
Run an example test with nosetests:
```bash
nosetests my_first_test.py
```
Run an example test suite and generate a nosetest report:
```bash
nosetests test_suite.py --report --show-report
```
Run an example test using a nosetest configuration file:
```bash
nosetests my_first_test.py --config=example_config.cfg
```
--------
For more advanced run commands, such as using a proxy server, see [../help_docs/customizing_test_runs.md](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md)
--------
If you just need to perform some quick website verification on various devices, you can use the <a href="https://seleniumbase.io/devices/">SeleniumBase Device Farm</a>. Just plug in a website URL, and it will display how the website looks on four different devices:
<a href="https://seleniumbase.io/devices/"><img src="https://seleniumbase.io/cdn/img/github_demo.png" width="540" title="SeleniumBase Mobile Mode" /></a><br />
--------
To make things easier, here's a simple GUI program that allows you to run a few example tests by pressing a button:
```bash
python gui_test_runner.py
```
<img src="https://seleniumbase.io/cdn/img/gui_test_runner.png" title="GUI Test Runner" width="320" />
--------
<img src="https://seleniumbase.io/cdn/img/super_logo_sb.png" title="SeleniumBase" width="320" />
<a href="https://github.com/seleniumbase/SeleniumBase">
<img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a>