当前位置: 首页 > news >正文

九龙坡建站公司公司网站建设手机端跟PC端

九龙坡建站公司,公司网站建设手机端跟PC端,成都网站seo外包,冬奥会网页设计代码目录 引言 一、Selenium简介 二、Selenium与pytest的集成 1. 安装pytest和Selenium 2. 编写测试用例 3. 运行测试 三、Selenium与unittest的集成 1. 编写测试类 2. 运行测试 四、Selenium自动化测试的最佳实践 1. 使用Page Object模式 2. 合理利用等待机制 3. 跨浏…目录 引言 一、Selenium简介 二、Selenium与pytest的集成 1. 安装pytest和Selenium 2. 编写测试用例 3. 运行测试 三、Selenium与unittest的集成 1. 编写测试类 2. 运行测试 四、Selenium自动化测试的最佳实践 1. 使用Page Object模式 2. 合理利用等待机制 3. 跨浏览器测试 4. 编写清晰的测试报告 五、总结 引言 随着软件开发的日益复杂自动化测试在软件开发周期中的重要性愈发凸显。自动化测试不仅提高了测试效率还确保了软件质量的一致性和可重复性。Selenium作为Web自动化测试领域的佼佼者以其强大的跨浏览器支持和灵活的API设计在自动化测试领域占据了重要地位。本文将详细探讨如何将Selenium集成到两种常见的Python测试框架——pytest和unittest中并通过丰富的案例和代码示例帮助新手朋友快速上手。 一、Selenium简介 Selenium是一个用于Web应用程序自动化测试的工具集它直接运行在浏览器中模拟用户的操作行为如点击、输入、导航等。Selenium支持多种浏览器和平台包括Chrome、Firefox、Edge、Safari等且支持多种编程语言如Java、Python、C#等。Selenium主要由几个部分组成 Selenium IDE一个用于记录、编辑和调试测试用例的图形界面工具。Selenium WebDriver提供了一套API允许开发者编写代码来控制浏览器。Selenium Grid支持分布式测试用例执行可以将测试用例分布到不同的测试机器上执行。Selenium WebDriver API 概览Selenium WebDriver API提供了丰富的功能用于定位页面元素、模拟用户输入、处理弹窗、执行JavaScript代码等。 以下是一些常用的API示例 from selenium import webdriver   from selenium.webdriver.common.by import By   from selenium.webdriver.common.keys import Keys  # 初始化WebDriver   driver webdriver.Chrome()  # 打开网页   driver.get(http://www.example.com)  # 定位元素并输入文本   search_box driver.find_element(By.ID, search-box)   search_box.send_keys(Selenium)  # 模拟点击搜索按钮   search_button driver.find_element(By.ID, search-button)   search_button.click()  # 执行JavaScript代码   driver.execute_script(alert(Hello, Selenium!);)  # 关闭浏览器   driver.quit() 二、Selenium与pytest的集成 pytest是Python的一个非常流行的测试框架以其简单、灵活和可扩展性著称。将Selenium集成到pytest中可以使Web自动化测试更加高效和灵活。 1. 安装pytest和Selenium 首先需要确保安装了pytest和Selenium。可以通过pip安装 bash pip install pytest selenium 2. 编写测试用例 使用pytest编写Selenium测试用例时通常会在测试文件中定义多个测试函数每个函数代表一个测试用例。每个测试函数都会接收一个fixture作为参数该fixture负责初始化WebDriver并管理其生命周期。 示例百度搜索测试 # test_baidu.py   import pytest   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  # 定义WebDriver fixture   pytest.fixture(scopefunction)   def driver():  chrome_options webdriver.ChromeOptions()  chrome_options.add_argument(--headless)  # 无头模式运行  driver webdriver.Chrome(optionschrome_options)  yield driver  driver.quit()  def test_baidu_search(driver):  driver.get(https://www.baidu.com)  search_box driver.find_element(By.ID, kw)  search_box.send_keys(Selenium)  search_button driver.find_element(By.ID, su)  search_button.click()  # 等待搜索结果加载  WebDriverWait(driver, 10).until(  EC.presence_of_element_located((By.CLASS_NAME, result-op))  )  # 验证搜索结果  assert Selenium in driver.title  # 运行测试   # pytest test_baidu.py 3. 运行测试 使用pytest命令运行测试文件pytest会自动发现并执行所有以test_开头的函数。 pytest test_baidu.py 三、Selenium与unittest的集成 unittest是Python自带的单元测试框架虽然不如pytest灵活但在一些项目中仍然被广泛使用。将Selenium集成到unittest中可以实现Web自动化测试的基本需求。 1. 编写测试类 在unittest中测试通常以测试类的形式组织每个测试方法都以test_开头。测试类需要继承自unittest.TestCase。 示例百度搜索测试 # test_baidu_unittest.py   import unittest   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  class TestBaidu(unittest.TestCase):  def setUp(self):  self.driver webdriver.Chrome()  def test_baidu_search(self):  self.driver.get(https://www.baidu.com)  search_box self.driver.find_element(By.ID, kw)  search_box.send_keys(Selenium)  search_button self.driver.find_element(By.ID, su)  search_button.click()  # 等待搜索结果加载  WebDriverWait(self.driver, 10).until(  EC.presence_of_element_located((By.CLASS_NAME, result-op))  )  # 验证搜索结果  self.assertIn(Selenium, self.driver.title)  def tearDown(self):  self.driver.quit()  if __name__ __main__:  unittest.main() 2. 运行测试 使用unittest自带的unittest.main()函数运行测试。 python test_baidu_unittest.py 四、Selenium自动化测试的最佳实践 1. 使用Page Object模式 Page Object模式是一种将页面上的元素和操作封装成一个类的设计模式。这样做的好处是可以减少代码重复提高测试的可维护性。例如可以将百度首页的搜索功能封装成一个类然后在多个测试用例中重复使用。 # baidu_page.py   from selenium.webdriver.common.by import By  class BaiduPage:  def __init__(self, driver):  self.driver driver  def search(self, keyword):  search_box self.driver.find_element(By.ID, kw)  search_box.send_keys(keyword)  search_button self.driver.find_element(By.ID, su)  search_button.click()  # test_baidu_with_page_object.py   import unittest   from selenium import webdriver   from selenium.webdriver.support.ui import WebDriverWait   from selenium.webdriver.support import expected_conditions as EC   from baidu_page import BaiduPage  class TestBaiduWithPageObject(unittest.TestCase):  def setUp(self):  self.driver webdriver.Chrome()  self.baidu_page BaiduPage(self.driver)  def test_baidu_search(self):  self.baidu_page.search(Selenium)  WebDriverWait(self.driver, 10).until(  EC.presence_of_element_located((By.CLASS_NAME, result-op))  )  self.assertIn(Selenium, self.driver.title)  def tearDown(self):  self.driver.quit()  if __name__ __main__:  unittest.main() 2. 合理利用等待机制 在Web自动化测试中经常需要等待页面元素加载完成后再进行操作。Selenium提供了显示等待Explicit Wait和隐式等待Implicit Wait两种机制。显示等待可以根据具体的条件等待元素更加灵活隐式等待则是在整个WebDriver的生命周期内设置等待时间较为简单但不够灵活。 3. 跨浏览器测试 Selenium支持多种浏览器可以通过修改WebDriver的初始化代码来实现跨浏览器测试。例如通过修改webdriver.Chrome()为webdriver.Firefox()即可在Firefox浏览器中运行测试。 4. 编写清晰的测试报告 测试报告是测试结果的重要展示形式。pytest和unittest都支持生成测试报告但有时候可能需要更详细的HTML报告。可以使用HTMLTestRunner一个第三方库来生成HTML格式的测试报告。 pip install HTMLTestRunner 然后在unittest的测试脚本中添加生成HTML报告的代码。 五、总结 Selenium作为Web自动化测试的强大工具与pytest和unittest等测试框架的集成可以极大地提升Web应用的测试效率和测试质量。通过合理的测试设计、Page Object模式的应用、等待机制的使用以及跨浏览器测试可以构建出稳定、可靠的自动化测试体系。希望本文的介绍和示例能够帮助新手朋友快速入门Selenium自动化测试并在实际项目中灵活运用。
http://www.ho-use.cn/article/10816237.html

相关文章:

  • 网站建设的结论小程序退款商家不给退咋办
  • 高端开发网站哪家专业备案网址查询
  • phpstudy网站建设教程html代码翻译
  • 做网站要多少钱 知乎网页设计心得5000字
  • 做兽药网站用什么图片好网页制作简单
  • dw怎样去除网站做的页面模板wordpress3d动画书
  • 宝安网站推广机械设备怎样做网络推广
  • 域名备案好了怎么建设网站网站建设怎么进后台
  • 什么网站可以做外链企业应该找什么样的网站建设公司
  • 网站建设与网页制作购物网名
  • 专业的高密做网站的优化型网站建设
  • 在印尼用哪个网站做电商菏泽网页设计公司
  • 外贸网站搭建服务商给传销做网站
  • 好的手机网站国内搜索引擎
  • 网站营销策划公司dw制作wap网站怎么做
  • 2017年做那个网站致富做网站编辑累吗
  • 为什么网站建设价格不一徐州专业网站制作公司
  • 餐饮网站源码百度推广费用多少
  • 个人可以备案网站的内容海外推广解决方案
  • 静态网站建设规划wordpress免费的吗
  • 微网站怎么注册账号青海省建设厅网站
  • 福州企业建站程序如何做网站的优化和推广
  • 网站开发方案论文wordpress 分页无效
  • 拖拽建站 wordpressfifa世界排名最新
  • html下载网站模板旅游新闻热点
  • 做网站公司流程蓝色大气网站模板
  • 网站开发 问题 关键技术为什么 要建设网站
  • 成都网站建设公司多少钱叫别人做网站需要注意什么
  • jsp网站建设项目实战wordpress最简洁主题
  • 合肥专业网站优化哪家好wordpress 欢迎插件