web自动化(selenium)

注:开始学习selenium自动化,这篇是基于观看b站百里讲的selenium课程,进行的总结,这里记录大概内容,细节用xmind记录总结

一、web自动化简介

1.哪些适合做web自动化

  • 软件需求变更不频繁
  • 项目周期比较长
  • 自动化脚本能够重复利用

2.自动化测试介入点

  • 系统测试-回归测试

3.自动化测试项目的实施过程

  • 可行性分析——>框架选择(selenium,RF)——>需求分析——>计划——>测试用例设计——>无人值守(和jenkins集成)——>提交报告——>脚本维护

二、环境搭建python+selenium

略过。。。
mac安装Chromedriver,参考:https://www.jianshu.com/p/a9df5135a3a3

三、八大元素定位

面试题:如果元素定位不到,你是怎么去分析的?

  1. 元素没有加载完成
  2. Frame中
  3. 元素不可用、不可读、不可见
  4. 动态属性,动态的DIV层

前提:需要定位的元素或它的属性必须要唯一

八大元素如下:

  1. id
  2. name
  3. class_name
  4. xpath
  5. css
  6. tag_name
  7. link_text
  8. partail_link_text

使用场景:有id、name的先用id和name,如果是超链接的话link_text和partail_link_text,如果也不是超链接,用xpath,css,class_name和tag_name基本上不用,因为它们很难保证唯一性

四、项目实战

(这里熟悉下unitest)
unitest使用方式:

  1. 新建一个类继承unitest.TestCase
  2. 导入unitest
  3. 写一个test开头的方法

main方法根本没有运行,是画蛇添足
在这里插入图片描述

能否运行取决于右上角的运行环境

4.1unitest运行测试用例的一个很大的坑:

1.命令行方式——不需要考虑环境

python -m unittest 模块名.py  # 执行整个模块
python -m unittest utils.test_case.TestCase.test_02_login  # 运行指定方法

2.main方式
建议要和用例写在同一个文件
必选要配置环境
3.建立一个all.py文件

import unittest
from HTMLTestRunner import HTMLTestRunner

if __name__ == '__main__':
    # 执行需要的测试用例 并且生成HMTL格式的自动化测试报告
    # 1.使用unittest默认的测试用例加载器去发现test_case目录下-py结尾的所有的测试用例
    unittest.defaultTestLoader.discover("./test_case", "*.py")
    # 2.生成报告文件
    report_file = open("./output/report/reports.html", "wb")
    # 3.生成一个HTMLTestRunner运行期对象(必须下载一个HTMLTestRunner.py,放到python的lib目录)
    HTMLTestRunner(stream=report_file, title='test', description=None)

4.2如果元素在框架中

  1. 进入框架
  2. 在进行操作
 # 进入框架
 driver.switch_to.frame("menu-frame")
 # 点击商品列表
 driver.find_element(By.XPATH, "//button[@title='商品列表']").click()
 # 出框架
 driver.switch_to.default_content()

4.3下拉框相关操作

  1. 先定位
  2. 转换成Select对象
  3. 选中(通过值,通过绝对文本,通过下标)

五、在企业能落地的web自动化框架

  1. 编程语言:java、python
  2. 设计模式:POM、关键字驱动模式
  3. 用例管理:unittest
  4. 数据驱动:ddt、pytest.mark.parameters()
  5. 二次封装:excel封装、ini/yaml配置文件封装、数据库封装
  6. 日志监控:logger日志收集
  7. 异常处理:try。。except。。
  8. 持续集成:jenkins
  9. docker:镜像容器技术
  10. 分布式运行:Grid
  11. 前端:html和js

六、DDT+EXCEL数据驱动

1.什么是DDT:data driver test数据驱动测试,可以完美的和unittest结合实现数据驱动
@ddt:装饰类,作用是用于申明当前类使用ddt数据驱动
@data: 装饰函数,作用是给函数传值
@unpack:装饰函数,作用是数据解包
@file_data:装饰函数,作用是直接读yaml、json文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值