匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

如何使用Python编写自动化测试脚本?

如何使用Python编写自动化测试脚本?

随着软件行业的不断发展,自动化测试已经成为了软件测试的重要组成部分。它可以帮助我们节省很多时间和人力,提高测试效率,使测试工作更加快捷、稳定和精准。而Python作为一门优秀的编程语言,其强大的数据处理能力和丰富的第三方库,也成为了自动化测试的首选语言。

本文将为大家分享如何使用Python编写自动化测试脚本,包括以下技术知识点:

1. Python的基础语法和数据结构

2. Selenium库的使用

3. Pytest框架的使用

首先,我们需要安装Python和相应的库。在Python官网下载安装包,并在命令行中使用pip安装Selenium和Pytest库:

```
pip install selenium
pip install pytest
```

接下来,我们开始编写自动化测试脚本。以一个网站的登录功能为例,我们需要实现如下几步:

1. 打开浏览器并进入网站的登录页面

2. 输入用户名和密码

3. 点击登录按钮

4. 验证登录是否成功

下面是完整的代码实现:

```python
import pytest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

@pytest.fixture()
def browser():
    driver = webdriver.Chrome()
    driver.get("http://example.com/login")
    yield driver
    driver.close()

def test_login_success(browser):
    username = browser.find_element_by_name("username")
    password = browser.find_element_by_name("password")
    login_button = browser.find_element_by_name("login")
    username.send_keys("testuser")
    password.send_keys("testpassword")
    login_button.click()
    assert "登录成功" in browser.page_source

def test_login_failure(browser):
    username = browser.find_element_by_name("username")
    password = browser.find_element_by_name("password")
    login_button = browser.find_element_by_name("login")
    username.send_keys("wronguser")
    password.send_keys("wrongpassword")
    login_button.click()
    assert "用户名或密码错误" in browser.page_source
```

首先,我们使用pytest中的fixture装饰器定义一个browser函数,它会被每个测试函数调用。在这个函数中,我们使用Selenium库的webdriver模块打开浏览器,并进入网站的登录页面。yield关键字表示生成器的返回值,并在测试完成后关闭浏览器。

接下来,我们编写两个测试函数,分别是test_login_success和test_login_failure。这两个函数中,我们使用Selenium库的find_element_by_name方法定位到网页中的用户名、密码和登录按钮,并模拟用户的输入和点击操作。然后,我们使用assert语句验证登录是否成功或失败。

最后,我们在命令行中使用pytest运行测试脚本:

```
pytest test_login.py
```

执行结果如下:

```
================================== test session starts ==================================
platform win32 -- Python 3.7.3, pytest-5.3.1, py-1.8.0, pluggy-0.13.1
rootdir: D:\test
collected 2 items

test_login.py .F                                                          [100%]

======================================== FAILURES ========================================
________________________________ test_login_failure _________________________________

browser = 

    def test_login_failure(browser):
        username = browser.find_element_by_name("username")
        password = browser.find_element_by_name("password")
        login_button = browser.find_element_by_name("login")
        username.send_keys("wronguser")
        password.send_keys("wrongpassword")
        login_button.click()
>       assert "用户名或密码错误" in browser.page_source
E       AssertionError: assert '登录成功' in '

用户名或密码错误

' test_login.py:20: AssertionError ================================== short test summary info ================================== FAILED test_login.py::test_login_failure - AssertionError: assert '登录成功' in '