python学习——web自动化测试-UI自动化

自动化测试

  1. 什么是自动化测试
    • 有程序代替人工进行系统校验的过程
  2. 自动化测试能解决的问题
    • 回个测试(冒烟测试
      • 对之前的功能进行测试,通过自动化的代码来实现
      • 针对上个版本的问题回归
    • 兼容性测试
      • web实例化不同的浏览器驱动,想防御对不同的浏览器进行操作,解决浏览器的兼容性问题
    • 性能测试
      • 通过工具来模拟多个用户实现并发操作
    • 提高工作效率,保障品质质量
  3. 自动化测试的优点
    • 能在较少的时间内执行更多的测试用例
    • 能够减少人为的错误
    • 能够克服手工的局限性
    • 脚本可以重复执行
  4. 误区
    • 自动化可以完全代替手工测试
    • 自动化一定比手工厉害
    • 自动化可以发现更多的bug
    • 自动化适用于所有功能
  5. 自动化测试的分类
    • web自动化
    • 移动app自动化
    • 接口自动化
      • 用来给web或者app前端传输数据用的
    • 单元测试-自动化
      • 针对开发的代码进行测试,一般由开发自己操作
    • 安全测试(渗透测试)
      • 针对系统、数据、应用等安全性方面进行测试
    • 桌面应用自动化测试
      • 针对Windows的桌面应用程序进行自动化测试
    • 嵌入式设备自动化测试
      • 针对嵌入式设备的应用程序进行自动化测试
  • UI自动化测试
    • 通过对web应用及app应用进行自动化测试的过程
  • 什么项目合适做ui自动化
    • 需求变动不频繁
    • 项目周期长
    • 项目需要回归测试
  • UI自动化在什么阶段开始
    • 手工测试完成之后才进行自动化测试
      • 通过手工测试能够清除知道自动化的步骤以及结果
  • UI自动化测试所属分类
    • 黑盒测试(功能测试)
      • UI自动化是模拟人工对web以及app页面操作的过程
    • 白盒测试(单元测试
    • 灰盒测试(接口测试
情景:
1.V1 通过手工测试完成之后,有是个功能
2.针对V1版本的 10个功能,进行自动化的代码编写
3.V2增加了十个功能(现在共20个功能)
4.V2版本的测试过程中,新增的10个功能手工测试
5.针对老的10个功能就可以通过自动化进行回归测试

web自动化框架

  • QTP
    • 由惠普公司开发的一款自动化工具,支持web、桌面的自动化测试。收费的商用工具。
  • selenium
    • 主要用来做web自动化测试的,开源的免费的工具
  • root framework
    • 自动化测试平台,通过他可以实现web自动化测试、接口自动化测试、桌面的自动化测试。

selenium特段

selenium中文名是硒,用来做web自动化测试的
[səˈliːniəm] 涩力念
https://www.selenium.dev/documentation/zh-cn/guidelines_and_recommendations/page_object_models/

  • 开源软件
  • 跨平台      平台指操作系统
  • 支持多种浏览器  firefox、chrome、ie、edge、opera、safari
  • 支持多语言:python、java、c#、js、php
  • 成熟稳定功能强大:北大公司使用,Google、华为、百度、腾讯

selenium发展史

  • selenium1.0

    • selenium IDE

      • 是firefox的一款插件,通过它可以记录用户的操作并生成对应的自动化脚本
    • selenium grid

      • 分布式的集成环境

        ​ 通过gtrd可以将测试脚本下发到不同的电脑用不同的浏览器来执行

    • selenium RC

      • 由js封装的工具,用来对浏览器进行操作的。
  • selenium2.0

    • selenium 1.0 + webdriver
    • 针对浏览器的操作都是铜鼓webdriver实现的
    • 支持的语言更多
  • selenium3.0

    • 删除了selenium RC
    • 全名支持java8
    • 支持macOS,支持safari浏览器
    • 支持微软最新的EDGE浏览器,支持更多的浏览器

webdriver:浏览器驱动器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uiqdtrk7-1624374306312)(G:\learn\测试\自动化测试\selenium工作原理.bmp)]

selenium工具包安装

  • python开发工具安装
  • 浏览器安装
    • 需要注意浏览器与浏览器的驱动版本,不同浏览器有不同的浏览器驱动
    • 不同版本也有不同的驱动
  • selenium工具包安装
    • 在线安装方式
      • pip install selenium
    • 离线安装
    • pycharm进行安装

浏览器驱动安装

  • 查看浏览器版本
  • 下载驱动
    • http://chromedriver.storage.googleapis.com/index.html
  • 解压浏览器驱动文件,将驱动文件复制到python的根目录
    • python\scripts 内

入门创建示例

  • 项目名称不要使用第三方模块名
'''
selenium 学习
1.导入selenium
2.实例化浏览器驱动对象
3.打开百度网站
4.等待3S(代表业务操作
5.退出浏览器驱动(释放系统资源)
'''
import time
from selenium import webdriver

# 创建谷歌浏览器驱动对象,首字母大写需要加()
# 可以实例化多个浏览器驱动对象
# driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(3000)
# 退出浏览器驱动(释放系统资源
driver.quit()

元素定位

  • 如何进行元素定位

    • HTML元素:标签头+内容+标签尾
    • 元素的信息来定位元素
      • 标签名及元素的属性
    • 元素的层级结构来定位元素的
      • 互相嵌套的层级结构
  • selenium元素定位的方法

    • id:元素必须有ID属性
      • find_element_by_id(IdName)
    • name
      • find_element_by_name(Name)
    • class_name
      • find_element_by_class_name(ClassName)
      • 选取其中一个class即可
    • tag_name
      • 通过元素的标签名称定位
      • 重复元素,默认定位第一个
      • 不建议使用
      • find_element_by_tag_name(TagName)
    • link_text
      • 通过超链接的全部文本信息进行元素定位,主要用来定位a标签
      • find_element_by_link_text(LinkText)
    • partail_link_text
      • 通过超链接的局部文本信息进行元素定位
      • find_element_by_link_text(Partail)
    • xpath
      • 页面中有一些元素,无法通过元素的信息精准的定位需要借助xpatn和css
    • css
  • 定位一组元素的方法

    • find_elements_by_id(id)
      • 区别:element 多了一个s
    • 返回的值是一个列表
    • 可以通过下标[0]来使用列表的元素
import time

from selenium import webdriver

# 实例化对象
driver = webdriver.Chrome()
driver.get("https://www.jianshu.com/sign_in")
# 点击注册按钮
driver.find_element_by_link_text("注册").click()
time.sleep(1)
# 返回list形式的数据
input_list = driver.find_elements_by_tag_name("input")
input_list[2].send_keys("自动输入名字")
time.sleep(1)
input_list[4].send_keys(15968164740)
time.sleep(1)
driver.close()

XPath(推荐使用

  • XML Path 的简称,在XML文档中查找元素信息的语言
  • HTML可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值