P138--模块化驱动测试实例 P142--参数化搜索关键字 from selenium import webdriver search_text = ['python','中文','text'] # 存放搜索的关键字 for text in search_text: # 通过for循环来遍历数组 driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.baidu.com") driv…
selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重,为了减轻回归测试的工作量,所以考虑后台可以进行部分自动化测试. 之前一个项目使用robotframework进行回归测试,了解了python语言,所以这次就使用python2.7+selenium2进行自动化回归测试了. 配置环境 python2.7 运行工具pycharm2017 一.项目结构介…
有很多selenium的教程,你没有从头看,当你看的时候已经很难跟上作者的节奏了.现在,你有机会再从头学一次了.从今天开始,船长会从最基本的知识开始,和大家一起学selenium.能不能跟着一起就看大家了.我们是按照虫师的书<selenium2 python 自动化测试实战>写的,没错,我看了多少,就会在这里和大家分享多少.还是老规矩,不明白的可以留言,现在有五六个人加了我好友,船长也尽力给大家解决问题了.还有要谢谢@川小姐姐的赞赏,你是第一个真正赞赏的,哈哈,谢谢! 好今天我们来第一课,搭建…
java 版来了!! 本文档在<selenium2 Python 自动化测试实战>的基础上,将代码与实例替换为java ,当然,部分章节有变更.这主要更语言本身的特点有关.集合和java下两大主流单元测试框架Junit4 和 TestNG.如何通过sikuli帮助我们识别和定位元素. 自从出了Python 版的Selenium自动化测试以来,一直有同学不断询问有没有Java版的. 其实,关于Selenium的讲解,Java版的资料是最多的.目前市面的Selenium书,大多例子也是用的Java…
本章内容: 概念介绍 自动化测试模型 一.概念 自动化测试库.框架.工具之间的区别: 库是由代码集合成的一个产品,供程序员调用,面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库. 框架是为了解决一个互或一类问题而开发的产品,用户一般需要只需要使用框架提供的类或函数,即可实现全部功能. 工具与框架所做的事情类似,只是工具会有更高的抽象,屏蔽了底层的代码,一般会提供单独的操作界面供用户操作. 二.自动化测试模型 自动化测试模型可以看作自动化测试框架与工具设计思想的结合.随着自动化…
前言 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框架在发展的过程中经历了几个阶段,模块驱动测试.数据驱动测试.对象驱动测试.本章就带领读者了解这几种测试模型 1. 自动化测试模型介绍 自动化测试模型是自动化测试架构的基础,自动化测试的发展也经历的不同的阶段,不断有新的模型(概念)被提出,了解和使用这些自动化模型将帮助我们构建一个灵活可维护性的自动化架构 1.1 线性测试 通过录制或编写脚本,一个脚本完成一个场…
6.1  自动化测试模型介绍 6.1.1  线性测试 :其实就是单纯地来模拟用户完整的操作场景. 优势就是每一个脚本都是完整且独立的:   缺陷测试用例的开发与维护成本很高. 6.1.2  模块化驱动测试 :编程语言中模块化的思想,把重复的操作独立成公共模块,当用例执行过程中需要用到这一模块操作时则被调用,这样就最大程度上消除了重复,从而提高测试用例的可维护性. 6.1.3  数据驱动测试 :数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.(我们读取的是定义的数组.字典,或者是外部文…
所谓的自动化测试模型,可以理解为自动化测试框架+工具设计的一种思想产物. 先说说库.框架.工具之间的区别: 库:英文名Library,由代码集成的一个产品,供用户调用.面向对象的库叫做类库,面向过程的库叫做函数库,webdriver就属于库的范畴. 框架:英文名Framework,为解决一个或一类问题而开发的产品,一般只需要使用框架提供的类或函数,即可实现全部功能.前面的博客中提到的unittest框架, 主要用于实现测试用例的组织和执行,以及测试结果的生成,因此通常称它为单元测试框架. 工具:…
1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编写对应用程序的操作步骤产生相应的线性脚本,每个测试脚本相对独立,且不产生其他依赖与调用,这也是早期自动化测试的一种形式:它们其实就是单纯的来模拟用户完整的操作场景. 前面写的所有文章所编写的测试脚本都属于线性测试. 这种模型的优势就是每一个脚本都是完整且独立的.所以,任何一个测试用例脚本拿出来都可以…
一.自动化测试模型 自动化测试模型介绍:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试 线性测试:每个测试脚本相对独立,且不产生其他依赖与调用,只是单纯的来模拟用户完整的操作场景.模块化驱动测试:把重复的操作独立成公共模块,当用例执行过程中需要用到这一模块操作时则被调用.数据驱动测试:就是数据的参数化,因为输入数据的不同从而引起输出结果的不同.不管我们读取的是定义的数组.字典,或者是外部文件(excel.csv.txt.xml等)都可以看做是数据驱动,它的目的就是实现数据与脚本的分离.…
今天讲解简单的自动化测试模型,对于刚接触自动化测试的同学,由于没有编程语言的基础,是搞不懂代码里面的函数.封装.包以及其他概念,只是了解字符串.数组.元组及字典这种最基本的名词,更不懂自动化测试框架了. 这篇笔记来粗略记下学习自动化测试的几种模型. 1.线性测试 线性测试,顾名思义,就是一条路按照一条直线走到底.它的每个脚本都是独立的,都可以拿出来单独运行,来验证一个功能点,上两段小代码举个栗子: 打开百度主页: # coding:utf-8 from time import sleep  #…
随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用. 与传统的手工测试技术相比,自动化测试具备了良好的可操作性.可重复性和高效率等特点,能够更加全面.快速地执行测试用例,在保证产品质量的前提下实现软件产品的快速迭代. (图片来自于网络) 关于自动化测试的定义,本文不再详细赘述.一般来说,自动化测试是指:从局部或全部代替人工,结合测试工具和测试规范,自动执行测试脚本及提高测试效率的过程.因…
    1.自动化测试基础 5.自动化测试模型 9.Selenium Grid2 13.GitHub托管项目 2.测试环境搭建 6.SeleniumIDE 10.Python多线程 14.持续集成Jenkins入门 3.Python基础 7.unittest单元测试框架     4.WebDriverAPI 8.自动化测试高级应用 12.BDD框架之Lettuce入门    …
线性测试 已经被淘汰了:线性测试就是一个脚本完成一个场景,代码基本没有复用,每一个脚本都要从头开始写——这哪行. 模块化与类库 这个就是分模块:有点类似面系那个对象,把功能(比如登录)单独拿出来,当下次用到这个功能的时候只需要调用(登录)模块即可. 提高开发效率 方便代码维护 数据驱动 数据与脚本分离——参数化. 关键字驱动 看过我的robot Framework了吧,那个就是关键字驱动,“关键字”其实就是把函数封装成关键字,用的时候直接把这个封装好的关键字拿过来用就OK了.其实和数据驱动差不多…
P276 11.1.3 自动化测试用例编写原则 在编写自动化测试用例过程中应该遵循以下原则: 1.一个用例为一个完整的场景,从用户登录系统到最终退出并关闭浏览器: 2.一个用例只能验证一个功能点,不要试图在用户登录系统后把所有的功能都验证一遍: 3.尽可能少的编写逆向逻辑用例.一方面因为逆向逻辑的用例很多(例如,手机号输错有几十种情况),另外一方面自动化脚本本身比较脆弱,复杂的逆向逻辑用例实现起来较为麻烦且容易出错: 4.用例与用例之间尽量避免产生依赖: 5.一条用例完成测试之后需要对测试场景进…
P205--HTML测试报告 P213--自动发邮件功能 P221--Page Object 设计模式…
本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的学习和应用,有一次在网上随意搜索,找到了-虫师-写的<Selenium2自动化测试实战基于Python语言>,觉得真心不错,内容也很调理,为了方便自己学习和知识的整理,就把其中虫师编写的自动化项目教程整理一下,有兴趣的可以去参看虫师的博客http://www.cnblogs.com/fnng/ 以…
         刚接触自动化测试,由于没有编程语言的基础,是搞不懂代码里面的函数.封装.包以及其他概念,只是了解字符串.数组.元组及字典这种最基本的名词,更不懂自动化测试框架了.          在我这种外门汉的角度来看,代码不就是一页word文件写进去,从头执行到尾吗?其实不然,代码可不止一页word,很多页啊.         看着虫师的书籍学习自动化测试,边看边敲还是会忘记,想想还是做做笔记比较合宜.这篇笔记来粗略记下学习自动化测试的几种模型,可能再之后回来看会有特别的感受,先这样记着…
driver.findElement(By.id("idInput")).sendKeys("哈哈"); driver.findElement(By.id("idInput")).sendKeys("哈哈"); 这句话的意思是在id=idInput的文本框输入数据:哈哈,没有回车的效果 sendKeys()方法模拟键盘输入向输入框里输入内容 sendKeys()方法可以模拟键盘输入 driver.findElement(By.…
一.自动化测试代码最开始是线性的,后续发展为模块化代码,所以涉及到了函数和方法的引用. 1. 函数和方法的最主要区别: Python的方法中定义函数的时候,函数中必须写self.而单独定义函数的时候则不需要写self.在Java中self是隐形的不需要写出来,但是Python中必须要写出来的. #login方法中定义一个函数fun()1 class login(): def fun(self,a,b): c=a+b return c d=login() f=d.fun(4,5) print(f)…
unittest是展开自动化测试的基础——这个框架很重要! 我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8 class Widthget:    def __init__(self, size=(10, 10)):        self._size = size    def getSize(self):        return self._size        def reSize(self, width, height):      …
(一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好了以后点击这个标签启动: 1:控制用例运行速度 2:暂停和恢复用例执行 3:单步:可以运行一个用例中的一行命令. 先在地址栏输入要录制的url,然后在浏览器进入相应的url,比如我们以百度为例: 第一步:填入url 第二步:火狐浏览器进入百度 第三步: 点击Selenium IDE右侧那个红点,然后…
webdriver 提供错误截图函数 get_screenshot_as_file(),可以帮助我们跟踪 bug,在脚本无法继续执行时候, get_screenshot_as_file()函数将截取当前页面的截图保存到指定的位置 # coding: utf-8 from selenium import webdriverfrom time import sleep d = webdriver.Firefox() d.get("https://www.baidu.com") sleep(…
看代码: # coding=utf-8 from time import sleepfrom selenium import webdriver driver = webdriver.Firefox() driver.maximize_window() driver.implicitly_wait(6) driver.get("https://tieba.baidu.com/index.html") sleep(1)# 用目标元素参考去拖动target_elem = driver.fi…
js修改readonly属性 我们看到这里日期框标签中有readonly属性,如果我们直接send_keys就无法输入内容,这时我们需要先去掉readonly属性: js ='document.getElementById("train_start_date").removeAttribute("readonly")'driver.execute_script(js) 然后可能需要清空一下文本框,然后用send_keys填入我们想填的内容即可,或者继续用js写入:…
之前我们已经学过利用cookies跳过验证码登录了,那时候我们用的方法是add_cookie()方法,这里再给大家介绍两个,一般情况下我们用不到,了解一下就可以,而且如果真的用到的时候百度也很快的: # coding: utf-8 from selenium import webdriverfrom time import sleep d = webdriver.Firefox() d.get("https://www.yiyao.cc")# 看一下登录前的cookieprint d.…
说下载文件之前,我再和大家说一下用cookie登录的事,既然我们用cookie登录,那么传过去的cookie肯定是要和对应的网站完全一致的,注意,是包括大小写哦,本来我也是不知道,我用这个方法登录自己公司的网站,fiddler抓包和代码如下: # coding: utf-8 from selenium import webdriverfrom time import sleep driver = webdriver.Firefox() driver.get("https://www.yiyao.…
看代码: # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firefox() driver.get("https://www.cnblogs.com") driver.add_cookie({'name': '.CNBlogsCookie', 'value': 'F956F323DFA5C31BE489C0730C7D891', 'domain': '.cn…
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~…
先和大家说一下selenium环境的问题,大家可以在cmd里先看一下自己的selenium版本: 回车,就可以安装了. 本来想和大家说如何跳过验证码进行登录的,结果好多朋友加我问我环境配置的问题,所以觉得还是和大家详细的说明一下,我也自己做一下记录.大家可以提前看一下跳过验证码登录的问题.大家需要下载fiddler,一个很好用的工具,如果你在做手机App测试,应该很了解fiddler,因为需要用fiddler配置手机代理. 微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~…