web自动化测试框架抽取示例 例子:测试登录模块,对登录的账号和密码进行不同的case校验. 1.1.1 无优化代码login_1 package com.lee.auto.testFrome; import org.openqa.selenium.By; import org.openqa.selenium.chrome.ChromeDriver; public class login_1 { public static void main(String[] args) throws Inte…
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面上的常用控件(可批量或单个抓取),获得控件所在的frame和三个唯一定位控件的xpath,并生成基于LazyUI框架的Java代码,解决繁杂的元素的获取问题. 下载: http://download.csdn.net/detail/kaka1121/9571942 拖拽安装到chrome即可右键使用…
转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)…
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)的形式导出成测试用例. Selenium WebDriver:提供Web自动化所需的API,主要用作浏览…
在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的机会,重新分析了一下框架,发现了很多不足之处,所以才有了这篇增强版. 到底在框架的哪一部分做了增强呢?这次主要从设计模式的角度来简单介绍一下. 首先我们来看一下之前是如何书写页面模式中的类的: BasePage: class BasePage(object): """descri…
作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选用chrome浏览器进行演示,IDE选用eclipse. STEP1:下载模板工程LazyUI-template,导入eclipse 前置条件:安装eclipse,并且装好maven,以及eclipse的maven插件 1.点击下载:https://github.com/lazytest/LazyT…
web自动化框架如何设计po模式总结: 1. 页面对象模型:当页面特别多的时候,代码更好的维护 2. Po是pageObject设计模式,用来管理和维护一组web元素的对象库 3. 每一个page class 维护着该页面的元素集合和操作这些元素的方法PO的优势: 1. PO提供了一种业务流程与页面元素分离的模式,是的测试代码变得更加清晰 2. 页面对象与用例分离,使得我们能够更好的复用对象 3. 可复用的页面代码会使得我们的代码风格更加的优秀,优化…
作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一般过程如下图所示:   web端自动化常用工具简介 web端自动化测试通常用QTP或者Selenium. QTP,商业工具(收费),笨重,但是功能强大,易上手,是一套完整的自动化解决方案,且适用于C/S,B/S结构.最大的缺点是VBS语法体系,不太适合写大项目,而且效率低,所以QTP现在很容易被代替…
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在CSDN写过一篇很详细的博文,零基础的小白都可以看懂,地址如下: python+selenium环境搭建步骤 三.Selenium 原理 Selenium 是一套完整的 web 应用程序测试系统 ,它包含了测试录制(Selenium IDE).编写及运行(Selenium Remote Contro…
优秀的框架都有属于自己的思想,在搭建web自动化测试框架时,我们通常都遵循 PO(Page Object)思想. 简单理解就是我们会把每个页面看成一个对象,一切皆对象,面向对象编码,这样会让我们更好的解耦代码,也更好的进行封装和理解. 使用selenium框架来操作页面时,最常用的都是一些点击,输入内容,页面切换等方法,如果每个页面我们都要写一遍这样的操作代码,重复性高,代码冗余.所以我们一般都会把这些共性的操作提取成一个基础类:BasePage. 以下是对该类的简单封装,还有其他的方法欢迎大家…
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力活:对于自动化测试与人工测试优缺势的问题,这里不想深入讨论,开一个博客收集一些观点然后开个讨论组讨论效果可能会更好. 标题上列的,是自己对web自动化这块统一的一个想象或是一套完整的自动化应所包含的的部分,目前完成了excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试…
1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这块,想提供建设性建议,是建立在业务场景.用户使用的深刻理解基础上,然后对产品目规划理解是否合理,提出自己的看法与想法:体验这块,一定要有一个比较全局的概念,换个意思说,就是应该站在产品经理的角度去看系统,看系统的各个子功能.各个子功能协调是否合理.是否还有更优建议.而不仅仅只局限一个界面.一个菜单.…
一.框架源码 https://github.com/jiangnan27/Autotest_UI_Open   二.框架大概介绍 Python3 + selenium3 + pytest5.3 + allure2.13 三.框架目录 四.框架作用范围 1.web自动化 2.H5自动化(源码里面自带的例子就是淘宝H5的登录)…
看到一篇环境搭建文章,详细又全面,这里就不一一重复了 http://blog.csdn.net/dyllove98/article/details/9390649 其它: 1.框架介绍      整个框架基于数据驱动自动化测试思想,框架整体分成五个层,即object.pageobject.action.runaction.testrun:分别对应浏览器类型,浏览器页面,页面功能,功能验证与输出等,功能测试脚本运行:页面测试数据与功能选择配置都在excel文件中配置,data目录包含case运行时…
1.Common目录下的具体模块讲解. 2.basepage.py basepage.py模块里面是封装的对元素的操作.例如:查找元素.点击元素.文本输入等等. # --^_^-- coding:utf-8 --^_^-- # @Remark:webdriver的封装 from Common import logger import logging import time import datetime from selenium.webdriver.support.wait import We…
1.TestCases目录下的模块 TestCases目录下是存放测试用例的目录. TestCases目录下的测试用例采用unittest框架来构建. 例如:登录功能的测试用例.(test_1_login.py) # --^_^-- coding:utf-8 --^_^-- # @Remark:测试登录功能 import unittest from selenium import webdriver from PageObjects.login.login_page import LoginPa…
1.什么是PO模式? PO是Page Object的缩写 PO模式是自动化测试项目开发实践的最佳设计模式之一,讲页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,从而提供可维护性. 主要有以下几种分层方式:1)两层: 对象逻辑层+业务数据层2)三层:对象库层+逻辑层+业务数据层3)四层:对象库层+逻辑层+业务层+数据层 2.PO模式的优势 1)效率高 :PO模式的逻辑层方法有具体定义,元素发生变化修改逻辑层,业务层不变.这样看来结构简单清晰,舒服更符合人类习惯, 普通方式就是继续堆cas…
1.main.py模块的功能 最后就是要有一个项目入口,并且是需要加载测试用例集. # --^_^-- coding:utf-8 --^_^-- # @Remark:运行入口 """ 记录一下用例执行过程 - 日志 如果用例失败 - Trackback报错信息 - 失败了截图. 记录一下, 用例的运行时间 - 起始 - 等待的时候,等待时长. 用例.页面对象当中. 用例 = 页面对象 + 测试数据 断言失败了!! 页面对象方法执行的时候,报错了!! 页面对象-任意功能 = 等…
1.PageLocators目录下的具体模块 2.PageLocators目录下主要放置个页面的元素定位.用于统一管理个页面的定位元素. 例如:登录页面的元素定位login_page_locator.py # --^_^-- coding:utf-8 --^_^-- # @Remark:登录页面元素定位 from selenium.webdriver.common.by import By class LoginPageLocator: # 用户名输入框 user_loc = (By.XPATH…
1.TestDatas目录的功能 TestDatas目录下存放的是测试数据,比如:登录功能的测试用例数据. # --^_^-- coding:utf-8 --^_^-- # @Remark:登录测试数据 from TestDatas.Comm_Datas import web_login_url # 正常场景 success_data = {"user":"admin","pwd":123456,"check":web_log…
1.PageObjects目录下的模块 该目录下是存放各页面功能点. 比如:login_page.py模块下就是存放登录页面上的各个功能点的.(登录功能.获取登录失败的提示信息) # --^_^-- coding:utf-8 --^_^-- # @Remark:登录页面 from Common.basepage import BasePage from PageLocators.login.login_page_locator import LoginPageLocator as loc cla…
1.Outputs目录下的具体目录功能 2.logs目录 logs目录是用于存放log日志的一个目录. 2.reports目录 reports目录是用于存放测试报告的. 3.screenshots目录 screenshots目录是存放测试失败时的截图.…
概述: LazyUI-template: 提供Maven管理的,基于Spring+Testng的,包含常用浏览器driver的,方便连接各种数据库的java模板工程,并提供以百度搜索为例的第一个测试用例. 获取地址:https://github.com/lazytest/LazyTest-UI-Template/archive/master.zip 愿景: 1. 降低基于selenium的web测试工程搭建门槛: 2. 引入必要和好用的jar包依赖: 3. 提供良好的代码分层.配置文件提取.友好…
数据库用到的是mysql,框架涉及数据库,主要包含两个方面,一个是每个案例执行完毕后,插入案例相关信息与数据:一个是web界面数据核对的时候,需要从sql中获取某行某列值与界面某个值做比较. 描述:web很大一部分的测试,就是对比界面上面的数据信息是否准确:比如一些简单数据的统计.数据的基本信息.也包括数据转换的数据(0:正常,1:停用);但是考虑web数据核对的时候,主要有两个方案,一个是初始化一批数据,然后拿界面数据与初始化数据做比较:第二中是直接拿数据库中相关信息数据,然后再和界面做一个对…
概述 前面的一篇博文详细介绍了单个控件抓取的设计思路&逻辑以及使用方法,本文将详述批量控件抓取功能. 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe.和三个唯一定位控件的xpath,以及被抓取元素的缩略展示,供使用者勾选,并生成基于LazyUI框架的Java代码,解决整个页面元素的获取问题. 下载: http://download.csdn.net/detail/kaka1121/9571942 拖拽安装到chrome即可右键使用 工具由来和设计思路在上篇…
现状: 看过前面的文章,楼主用的是python,所以在搭建测试报告这块的时候使用的是unittest+htmlTestRunner:然后发现生成出来的报告,总是有那么不完美的地方,比如想增加图片,比如显示风格改变下:然后尝试性的去修改了一个htmlTestRunner源码,虽然图片出来了,显示风格修改不了...so...萌生的弃意... 问题: 1.unittest unittest当案例异常或脚本执行异常时,无法继续执行下个案例~,比如登录时,后台服务异常.登录用户无菜单权限异常.新增用户状态…
整体框架,先划分成细小功能模块~~,从最简单的开始,介绍 实现循环百度搜索实例: #coding=utf-8 '''Created on 2014��6��9�� @author: 小鱼'''import xlrdfrom selenium import webdriverimport time #excelFile文件物理地址 book=xlrd.open_workbook("E:\Users\Administrator\workspace\SeleniumTest\excelFile.xls…
概述 框架提供了excel数据驱动方式运行测试用例的工具,本文将针对数据驱动,进行详细演示. 详见类:lazy.test.ui.browser.ExcelDataProvider 被测对象: http://bj.sqyishi.com/user/login.htm 测试场景: 输入用户名,点击登录,校验各种异常输入 输入后,红框里会出现一些异常提示,如图: bean层代码: 使用插件生成 package test; import lazy.test.ui.annotations.*; impor…
下载的firefox32.0的版本,但是在附件组件中只有selenuim IDE button,本以为这个就是selenium IDE插件,自以为是的后果就是把自己坑了.并且像一些selenium IDE java,selenium IDE python,selenium IDE C#等插件也在附件组件中找不到,只能自己去网上找xpi文件.Selenium IDE是不带任何别的名字的,重新在网上搜的Selenium IDE的xpi文件,里边有selenium IDE java和selenium …
本文档以谷歌浏览器为例,故自动化测试环境为下: 自动化工具为:selenium+webdriver 脚本语言为:Python3.X 浏览器:Chrome 系统环境:Win10 编译工具:Pycharm 具体搭建步骤如下: 一.安装Python 下载Python3.6.5 https://www.python.org/downloads/windows/ 下载完成后双击打开 点击运行按钮 安装界面,勾选Add Python3.6 to PATH,选择Customize installation 点…