学习笔记之软件测试4:CSDN账号密码登陆自动化测试实现(Selenium+Unitest)

前言

认识自动化Web测试

为什么要进行 自动化 测试
  1. 很多场景 在项目未上线之前 或者 上线之后 是单独手动测试无法实现的场景(由于各种原因)比如:
    • 回归测试
    • 压力测试
    • 兼容性测试
  2. 自动化测试开始的阶段:手动测试结束之后,因为手动测试更容易以普通用户的角度来进行测试,而且手动测试比自动化测试肯能发现的缺陷更多。
主流测试工具介绍
  1. QTP(收费)—>http://www.tutorialspoint.com/qtp/qtp_overview.htm
    QTP是商业的功能测试工具,收费,支持web,桌面自动化测试。

  2. Selenium(开源)—>https://www.selenium.dev/
    Selenium是开源的web自动测试工具,免费,主要做功能测试。

  3. Jmeter(开源、Web、接口、性能, 接口测试使用)—>https://jmeter.apache.org/
    Jmeter是由Apache公司使用Java平台开发的一款测试工具 !!!Web测试在通信层(无UI界面)!!!

  4. Loadrunner(收费、Web、性能)—>http://learnloadrunner.com/
    Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试

  5. Robot framework —>https://robotframework.org/
    Robot Framework是一个基于Python可扩展地(关键字驱动)的测试自动化框架

  6. 按照适用平台划分

    Web自动化测试:selenium、robot framework
    App端自动化测试:Appium、Monkeyrunner、UIautomation
    PC客户端(win32)自动化测试:QTP
    接口自动化测试:Jmeter、Postman、httpUnit、RESTClient
    云测平台:Testin Testbird
    性能测试:Jmeter、LoadRunner
    

Selenium

认识selenium

一、介绍

​ selenium:硒 一个主要做功能测试的web应用程序的测试工具

二、特点

  • 开源
  • 跨平台:linux、windows、mac
  • 多语种支持、多浏览器支持
环境准备

selenium 需要搭配搭配 webdriver库使用

一、认识WebDriver

  • Webdriver (Selenium)是一种用于Web应用程序的自动测试工具
  • Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动

二、WebDriver支持的浏览器

Chrom、IE、Opera、Firefox、Safari、HtmlUnit

注意:

  • Firefox、Chrome:对元素定位和操作有良好的支持,同时对JavaScript支持也非常好。
  • IE:只能在windows平台运行,所有浏览器中运行速度最慢
  • HtmlUnit:无GUI(界面)运行,运行速度最快;

支持的开发语言:Java、Python、PHP、JavaScript、Perl、Ruby、C#

三、安装

安装selenium时,前提是Python3.5以上版本安装完毕且能正常运行

selenium:pip install selenium

WebDriver:下载地址http://www.seleniumhq.org/download/

  • 下载后首先解压
    • Linux:unzip
    • windows:右击解压
    • 解压后的可执行文件 放到固定文件夹 使用的时候指定webdriver的绝对路径即可
    • 或者将可执行文件添加到环境变量中也可以

四、使用基本流程

# 模拟打开某个网页的 点击按钮操作

# 1.导包
from selenium import webdriver
# 2.实例化driver --浏览器不同driver也不同  这里使用的是Chrome
driver = webdriver.Chrome('./chromedriver')
# 3.发请求  GET或者POST等其他请求
driver.get(url)
# 4.获取摸个定位标签  
regiter_btn =driver.find_element_by_class_name('')
# 5.点击按钮 click()方法
regiter_btn.click()
# 6.关闭浏览器 quit()方法
driver.quit()
定位方式
0、为什么要定位元素

对HTML中的元素定位,目的是为了作为一个锚点,快速定位要进行操作的具体的要操作的网页元素,只有定位之后才能进行其他操作(点击、输入等)

一、HTML元素定位

driver.find_element_by_xxx() driver.find_element(by=By.定位元素,value=‘定位元素值’) 两种查询定位的方式返回的都是 WebElement对象 可以实现二次查找 返回 list[]

  1. 元素属性定位:id、name、class_name:
  2. 元素标签名称定位:tag_name
  3. 超链接定位(a标签):link_text、partial_link_text
"""
    6种定位方式
    id, name, class_name, tag_name, link_text, partial_link_text
"""
# 1.导包
from selenium import webdriver

# 2.实例化
driver = webdriver.Chrome('./chromedriver.exe')

# 3.发请求
driver.get('http://www.baidu.com')

# 4.查找元素 elenium.webdriver.remote.webelement.WebElement
element = driver.find_element_by_id('s_menu_mine')
# element = driver.find_element_by_name('tj_settingicon')
# element = driver.find_element_by_class_name('s-top-right-text c-font-normal c-color-t')
# element = driver.find_element_by_tag_name('input')  # 标签名
# element = driver.find_element_by_link_text('登录')  # 就是标签中直接写的汉字
# element = driver.find_element_by_partial_link_text('新闻')
# link_text 是超链接载体的精确匹配,而partial_link_text是对超链接载体的模糊匹配

# 获取标签的属性
# print(element.get_attribute(''))
print(elements)  # WebElement对象
# 5.关闭浏览器
driver.quit()
二、xpath定位
  1. xpath怎么定位的?:主要为元素在XML/HTML中的相对(绝对)路径定位

  2. xpath的几种定位策略:

    1. 路径-定位  绝对路径/相对路径 
    2. 利用元素属性-定位
    3. 层级与属性结合-定位
    4. 属性与逻辑结合-定位
    
  3. 语法格式
    在这里插入图片描述

  4. demo演示

    from selenium import webdriver
    # 1.初始化driver
    driver =webdriver.Chrome('./chromedriver')
    # 2.向百度发送请求
    driver.get('http://www.baidu.com')
    
    # 3.定位
    # 3.1定位地图标签
    elment1 = 
    driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[2]/a[3]')
    # 3.2定位新闻标签
    elment2 = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[1]')
    # 3.3定位输入框
    elment3 = driver.find_element_by_xpath('//input[@name="wd"]')
    # 3.4定位输入框
    elment4 = driver.find_element_by_xpath('//input[@name="wd" and @id="kw"]')
    # 3.5定位设为首页标签
    elment5 = driver.find_element_by_xpath('//a[@link_text="设为首页"] | //a[@class="c-color-gray2"]')
    # 3.6定位设为首页标签
    elment6 = driver.find_element_by_xpath('//*[text()="设为首页"]')
    
    # 4.获取定位元素的属性
    print(elment6.get_attribute('href'))
    print(elment6)
    # 5.退出浏览器
    driver.quit()
    
三、css定位

在selenium中极力推荐CSS定位,因为它比XPath定位速度要快!!!

  1. xpath怎么定位的?:HTML中的各种标签的元素的花里胡哨的样式都是通过CSS装饰实现的,所以我们也可以通过元素的CSS格式来定位元素

  2. css定位的几种常用策略:

    1. id选择器
    2. 类选择器
    3. 元素选择器
    4. 属性选择器
    5. 层级选择器(后代选择器)
    
  3. css基本语法
    在这里插入图片描述

  4. demo演示

    from selenium import webdriver
    
    driver = webdriver
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Web自动化测试是指通过编写自动化脚本来模拟用户在Web应用程序上的操作,以验证应用程序的功能和性能。Selenium是一种流行的Web自动化测试工具,而Python是一种常用的编程语言。结合使用Selenium和Python,可以实现高效的Web自动化测试。 要使用Selenium进行Python的Web自动化测试,首先需要搭建相应的环境。可以按照以下步骤进行搭建: 1. 安装Python:访问Python官方网站,下载并安装Python的最新版本。 2. 安装Selenium:使用Python的包管理工具pip,在命令行中执行以下命令安装Selenium包: ``` pip install selenium ``` 3. 下载浏览器驱动:根据你所使用的浏览器类型,下载相应的浏览器驱动。例如,如果你使用Chrome浏览器,可以下载Chrome浏览器驱动。 4. 配置浏览器驱动:将下载的浏览器驱动添加到系统的环境变量中,这样Selenium才能找到并使用它。 完成环境搭建后,就可以编写自动化测试脚本了。以下是一个简单的示例脚本: ```python from selenium import webdriver # 创建WebDriver对象,启动浏览器 driver = webdriver.Chrome() # 打开网页 driver.get('https://www.baidu.com') # 查找搜索框并输入内容 input_box = driver.find_element_by_css_selector('#kw') input_box.send_keys('selenium') # 查找“百度一下”按钮并点击 submit_button = driver.find_element_by_css_selector('#su') submit_button.click() # 检查搜索结果中是否包含关键字 assert 'selenium' in driver.title # 关闭浏览器 driver.quit() ``` 以上脚本使用Selenium的API来模拟用户在百度搜索引擎上的操作,并检查搜索结果中是否包含关键字"selenium"。可以根据实际需求编写更复杂的自动化测试脚本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Web自动化测试环境搭建之Python+Selenium](https://download.csdn.net/download/weixin_38690402/15443144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Web自动化测试 —— 测试环境搭建 (Selenium+Python)及视频操作](https://blog.csdn.net/Faith_Lzt/article/details/119187797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [如何使用 Python+selenium 进行 web 自动化测试?](https://blog.csdn.net/caixiangting/article/details/130581863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricerd_S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值