功能自动化

前提

  • 自动化的主要目的并不是为了找Bug,是为了证明功能可用
  • 不只是所有的功能都可以自动化,如UI
  • 并不是所有的项目都可以使用自动化,如selenium只能使用bs项目,小项目不适合使用自动化
  • 自动化在手动测试后
  • 在软件版本还没有稳定的情况下,千万不要开展自动化

自动化的局限性

  1. 定制性项目
  2. 周期很短的项目
  3. 人体感官与易用性测试
  4. 涉及物理交互
  5. 发现缺陷少
  6. 维护成本高
  7. 可能会制约软件开发
  8. 不能灵活处理意外

selenium

selenium: B/S软件功能自动化

IDE: 录制、回放【不会自动打开浏览器】

webdriver: 支持多语言的类库方法

Python 3.4 selenium:2.53.6 firefox: 46

IDE

1、 文件:创建、打开和保存测试案例和测试案例集。

    编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。

    Options :用于设置seleniunm IDE。

2、用来填写被测网站的地址。

3、速度控制:控制案例的运行速度。

4、运行所有:运行一个测试案例集中的所有案例。

5、运行:运行当前选定的测试案例。

6、暂停/恢复:暂停和恢复测试案例执行。

7、单步:可以运行一个案例中的一行命令。

8、录制:点击之后,开始记录你对浏览器的操作。

9、案例集列表。

10、测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。

11、查看脚本运行通过/失败的个数。

12、当选中前命令对应参数。

13、日志/参考/UI元素/Rollup

webdriver

定位方式

id:html标签的id属性值

name:html标签的name属性值

CSS:css样式选择器 # id选择器

xpath:通过标签在html页面源码路径

绝对路径:/html/body/table/tr/td[2]/input

相对路径:.//input[@aa="abc"]

     .//标签名[@属性名="属性值"]

     .//*[@aa="abc"]

     .//*[@属性名="属性值"]

link:通过超链接标签内容

identifier:优先id的,如果没有再去找name的

js:dom=document.getElementById(“password”)

class:class=

dd=webdriver.Firefox() 打开浏览器

dd.get("url") :打开url对应页面

webdriver:

dd.find_element_by_id("html标签的id属性值")

dd.find_element_by_name("html标签的name属性值")

dd.find_element_by_css_selector("html标签的css样式选择器")

dd.find_element_by_xpath("html标签的xpath路径")

dd.find_element_by_link_text("超链接标签内容")

dd.find_element_by_tag_name("html标签名")

dd.find_element_by_class_name("html的class属性值")

操作:

文本框,密码框,文本域:

清空:dd.find_element_by_....(....).clear()

输入:dd.find_element_by_....(....).send_keys("输入内容")

单选按钮,复选框,超链接,按钮:

点击:dd.find_element_by_....(....).click()

下拉框:

选择:

Select(定位到的一个具体的下拉框).select_by_value("option的value属性值")

切焦点到frame/iframe:

dd.switch_to_frame("frame的id/name属性值")

dd.switch_to.frame("frame的id/name属性值")

当页面有刷新或者有跳转,需要加等待时间

time.sleep(数字秒)

selenium上手的更多相关文章

  1. Selenium 上手:Selenium扫盲区

    Selenium 自述Selenium 是由Jason Huggins软件工程师编写的一个开源的浏览器自动化测试框架.主要用于测试自动化Web UI应用程序. Selenium 工作原理通过编程语言( ...

  2. selenium js

    这几天的任务量比较大,还有一个挺棘手的网站cfda,不巧的是数据量还挺大,40W关于企业信息.上来就是debugger pause,调试中断,开始还是挺懵逼的,但这个还算简单毕竟google,百度,就 ...

  3. 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践

    1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系 ...

  4. SeleniumIDE从0到1 (Selenium IDE 安装)

    换了工作后需要学习到自动化测试,经过一系列的筛选,最终选定了Selenium,原因是因为本人熟悉一点代码,用Selenium比较容易上手.刚开始接触Selenium的小伙伴是不是会觉得不知道从何动手呢 ...

  5. selenium 基本的键盘方法

    今晚不想加班,于是赶紧回来看看书: 1.下了selenium的小工具:FireBug/FirePath. 2.确定了看书顺序,我觉得难度低点开始比较好,所以我还是先看基于Python的selenium ...

  6. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  7. 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(一)

    话说之前自己写了个selenium的自动化框架,然后又研究了下RF,觉得RF这种基于关键字驱动的框架更为容易上手,当然在做一些比较繁琐的验证时,似乎还不是太灵活,不如自己写几行python来的实惠(也 ...

  8. Selenium简单介绍

    WEB自动化测试:指WEB应用系统从用户界面层面进行的自动化测试.通过用户界面测试内部的业务逻辑. 自身特点:(一)WEB页面上出现的元素有可能具有不确定性: (二)不同操作系统上不同WEB浏览器之间 ...

  9. 使用python selenium进行自动化functional test

    Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...

随机推荐

  1. 记不住git命令?试试这个命令浏览网站

    Find the right git commands without digging through the web. 找 git 命令,无需谷歌百度,无需 git -help,这个网站以图形界面的 ...

  2. Docker初探之Windows篇

    一.什么是Docker? Docker是一个开源的应用容器引擎,可以轻松地为任何应用创建一个轻量级.可移植.自给自足的容器.开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括虚拟机和其他平 ...

  3. Hotspot GC研发工程师也许漏掉了一块逻辑

    本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 概述 今天要说的这个问题,是我经常面试问的一个问题,只是和我之前排查过的场景有些区别,属于另外一种情况.也许我这里讲了这个之后,会成为不 ...

  4. 面向对象的js编程 Call和apply方法

    JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 一.方法定义 1.call 方法 语法:call([thisObj[,arg1[, arg2[, [,.arg ...

  5. Java 二维数组及方法概况

    数组 数组是指一组数据的集合,数组中的每个数据被称作元素.在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致. 数组的定义 在Java中,可以使用以下格式来定义一个数组. 数据类型[ ...

  6. C#LeetCode刷题之#709-转换成小写字母(To Lower Case)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3965 访问. 实现函数 ToLowerCase(),该函数接收一 ...

  7. Jira 和 Confluence 企业最佳部署方式

    在Atlassian,我们为客户提供不同的方式来部署 Atlassian 产品:可以部署在由 Altassian 管理的云端(Cloud)上,也可以部署在客户自己选择的服务器(Server)或数据中心 ...

  8. VUE——添加组件模块(图表)

    Vue是由一个个小模块组成的,模块可以让页面简介还可以复用: 1.不固定数据数量传到子组件 父组件: <chartVue v-for="(item, index) in chartLi ...

  9. kafka-clients 1.0 高阶API消费消息(未完)

    消费消息的请求(按序) org/apache/kafka/common/requests/RequestHeader org/apache/kafka/common/requests/ApiVersi ...

  10. YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台

    手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...