admin管理员组

文章数量:1636810

文章目录

  • 📋前言
  • 🎯自动化测试
    • 🧩环境的搭建
      • 1️⃣Python
      • 2️⃣Selenium
      • 3️⃣PyCharm
      • 4️⃣Chrome Driver
  • 🎯案例介绍
  • 📝最后


📋前言

人生苦短,我用Python。许久没写博客了,今天又是久违的参与话题的讨论,话题的内容是:如何入门 Python 的? 这个话题对于我来说有点小尴尬,因为我没有系统的学习过 Python 这门语言,只不过在写些算法题、小demo接触过,还有就是帮朋友搞大数据作业时(爬取数据、分析数据什么的),但是我之前参加软件测试比赛时接触过 Web 自动化测试 ,里面的代码涉及到了 Python 。因此这篇文章我来介绍一个简单入门级的 Web 自动化测试 案例。(说到这突然想起来之前还用 Python 大规模修改图片文件的后缀,还有 Web hook 的一些操作)

下面附上一张我在软件测试比赛中 Web 自动化测试 内容的题目。


🎯自动化测试

Web 自动化测试 是一种自动化测试方法,它主要是通过模拟用户的行为来对 Web 应用进行测试。在 Web 自动化测试 中,我们可以使用自动化测试工具和框架来编写自动化测试脚本,自动执行测试过程,并生成测试报告。

在进行 Web 自动化测试 时,需要注意以下几个方面:

  • 测试环境的搭建;
  • 自动化测试脚本的编写和维护;
  • 测试数据的管理;
  • 测试用例的设计和执行;
  • 测试报告的生成和分析。

🧩环境的搭建

上面说到测试环境的搭建,因此接下我们详细讲讲本次案例所要用到的测试环境。

1️⃣Python

本次案例必不可少的开发环境!!!

💻安装步骤:
官方下载地址:https://www.python/downloads/

看图片步骤(旧图)。




cmd测一下是否安装成功,出现版本信息则安装成功。


2️⃣Selenium

Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。

💻安装步骤:
通过cmd安装,或者通过 PyCharm 软件的设置安装。

cmd安装(旧图)。

pip install selenium==3.141.0


cmd测一下是否安装成功,出现版本信息则安装成功。

pip show selenium


通过 PyCharm 软件的设置安装。
打开设置。

找到项目 => Python解释器 => 点击 + 号安装。

选择版本安装即可。


3️⃣PyCharm

PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。

💻安装步骤:
官方下载地址:https://www.jetbrains/pycharm/

看图片步骤(旧图)。


4️⃣Chrome Driver

PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。

💻安装步骤:
官方下载地址:https://chromedriver.chromium/downloads

首先打开谷歌浏览器,查看其版本。(查看的步骤如下图)

然后根据下图步骤操作。


🎯案例介绍

这是一个使用 PythonSelenium 进行自动化测试的例子,代码主要实现了以下几个功能:

  • 打开某视频网站。
  • 关闭网页上的广告。
  • 窗口最大化。
  • 点击登录按钮进行登录操作。
  • 在登录窗口中选择密码登录,并输入手机号和密码。
  • 点击登录按钮进行登录。

示例代码:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 定义 CSS Selector 和 XPATH 值
URL = "https://www.xxx/"
ADS_CLOSE_BTN = "body > div.header__ele > div:nth-child(3) > div.header__promotion__popup > img"
LOGIN_BTN = "/html/body/div[1]/div/div/div[1]/div[4]/header/div/div/div[3]/div[8]/div/div[1]/div[1]/div/span"
USERNAME_INPUT = "username"
PASSWORD_INPUT = "password"
LOGIN_METHOD = "body > div:nth-child(16) > div > div.qy-login-container > div.qy-login-container-right > div.qy-login-main > div > div > div > div:nth-child(2) > div.qy-login-methods > div:nth-child(3)"
LOGIN_BTN_SUBMIT = "body > div:nth-child(16) > div > div.qy-login-container > div.qy-login-container-right > div.qy-login-main > div > div > div > div:nth-child(1) > div.qy-login-field > div.qy-login-btn > div > div"

# 创建 Chrome 浏览器实例
driver = webdriver.Chrome()

# 打开爱奇艺网站
driver.get(URL)

# 关闭广告
close_btn = driver.find_element(By.CSS_SELECTOR, ADS_CLOSE_BTN)
close_btn.click()

# 窗口最大化
driver.maximize_window()

# 点击登录按钮
login_btn = driver.find_element(By.XPATH, LOGIN_BTN)
login_btn.click()

# 选择密码登录
wait = WebDriverWait(driver, 10)
login_method = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, LOGIN_METHOD)))
login_method.click()

# 输入用户名和密码
username_input = driver.find_element(By.NAME, USERNAME_INPUT)
username_input.send_keys("15588886666")

password_input = driver.find_element(By.NAME, PASSWORD_INPUT)
password_input.send_keys("123")

# 点击登录按钮
login_submit_btn = driver.find_element(By.CSS_SELECTOR, LOGIN_BTN_SUBMIT)
login_submit_btn.click()

# 关闭浏览器
time.sleep(3)
driver.quit()

这段代码优化了以下几个地方:
使用隐式等待或显示等待来代替 time.sleep() 方法,以提高代码的健壮性和性能。例如可以使用 driver.implicitly_wait(10) 来设置隐式等待时间,在此期间 Selenium 会等待页面元素出现,如果在超时时间内元素没有出现,则抛出 NoSuchElementException 异常。

使用 find_elements() 方法代替 find_element() 方法。find_element() 方法会返回页面上第一个符合条件的元素,如果元素不存在则抛出 NoSuchElementException 异常。而 find_elements() 返回的是页面上所有符合条件的元素,这样可以避免因为页面结构变化导致无法找到指定元素的问题。

可以将一些重复的 CSS SelectorXPATH 值定义为变量,以便后续代码的维护和扩展。


📝最后

Python 是一种高级、解释型、面向对象的编程语言,具有简单易懂、易维护、可扩展性强和极高的开发效率等特点。由于其广泛应用于数据科学、机器学习、人工智能等领域,因此也被称为“最适合初学者的编程语言”。

随着人工智能技术的不断发展,Python 的使用范围也越来越广泛,例如在数据处理、计算机视觉、自然语言处理、智能控制等领域都有广泛的应用。由于 Python 具备良好的生态环境和社区支持,以及越来越多的第三方库和工具的加入,使得Python成为了一个拥有无限可能的编程语言。

最后想说的是:人生苦短,我用Python。

本文标签: 弹出案例测试内容广告