功能自动化

前提

  • 自动化的主要目的并不是为了找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. 一文入门人工智能的明珠:生成对抗网络(GAN)

    一.简介 在人工智能领域内,GAN是目前最为潮流的技术之一,GAN能够让人工智能具备和人类一样的想象能力.只需要给定计算机一定的数据,它就可以自动联想出相似的数据.我们学习和使用GAN的原因如下: 1 ...

  2. hashMap在jdk1.7与jdk1.8中的原理及不同

    在分析jdk1.7中HashMap的hash冲突时,不知大家是否有个疑问就是万一发生碰撞的节点非常多怎么版?如果说成百上千个节点在hash时发生碰撞,存储一个链表中,那么如果要查找其中一个节点,那就不 ...

  3. JAVA的基本程序设计结构<上>

    一个简单的Java应用程序 public class FirstSample { public static void main(String[] args) { System.out.println ...

  4. Qt 应用程序打包成安装文件

    欢迎关注公众号: fensnote 文章目录 编译Release版本,拷贝依赖库文件 选择Release模式 使用windeployqt.exe命令提取用到的dll库 使用Inno Setup打包 下 ...

  5. PHP7 生产环境队列 Beanstalkd 正确使用姿势

    应用场景 为什么要用呢,有什么好处?这应该放在最开头说,一件东西你只有了解它是干什么的,适合干什么,才能更好的与自己的项目相结合,用到哪里学到哪里,学了不用等于不会,我们平时就应该多考虑一些这样的问题 ...

  6. 高级搜索树-伸展树(Splay Tree)

    目录 局部性 双层伸展 查找操作 插入操作 删除操作 性能分析 完整源码 与AVL树一样,伸展树(Splay Tree)也是平衡二叉搜索树的一致,伸展树无需时刻都严格保持整棵树的平衡,也不需要对基本的 ...

  7. 为什么我们需要Q#?

    原文地址:https://blogs.msdn.microsoft.com/visualstudio/2018/11/15/why-do-we-need-q/ 本文章为机器翻译. 你可能熟悉微软量子的 ...

  8. 认识与学习BASH①——鸟叔的Linux私房菜

    文章目录 认识与学习BASH① 认识BASH 壳程序 多种shells Bash shell 的功能 type :查询指令是否为Bash shell 的内置指令 指令的换行输入和快速删除 Shell的 ...

  9. vue-loader处理vue文件

    loader:"vue-loader" ,引导vue文件被vue-loader/lib/index.js处理 第一步:解析vue文件 const utils = require(' ...

  10. vue cli3.0使用svg全过程

    VUE-cli3使用 svg-sprite-loader svg-sprite-loader 的插件,用来根据导入的 svg 文件自动生成 symbol 标签并插入 html 1.安装依赖 npm i ...