热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Web自动化涉及的技术及框架介绍

一.Selenium是一个用于Web应用程序的自动化测试的工具支持的浏览器有IE,FireFOx,Chrom等,这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是




一.Selenium

是一个用于Web应用程序的自动化测试的工具支持的浏览器有IE,FireFOx,Chrom等,这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。


二.testNg测试框架

testNg是一个Java的测试框架,主要用来做自动化


  1. 利用Parameters注解将test.xml中启动的浏览器(IE,FireFOx,Chrom等)参数传递给初始化浏览器驱动的方法
    2 .利用注解实现测试方法的执行顺序,比如:
    利用@BeforeSuite注解在test.xml中在某个测试套件(suite)所有测试方法执行前选择浏览器驱动和加载元素定位方法
    利用@AfterSuite注解在test.xml中在某个测试套件(suite)所有测试方法执行结束后退出浏览器驱动
    3.支持数据驱动,DataProvider注解的方法是数据提供者,一般返回Object[][] 和 Iterator两种类型,
    Test注解的方法是数据接收者,接收DataProvider注解的方法传过来的数据进行测试
    Iterator:用于把数据存入在一个实体类里,即数据按“对象”存储
    Object[][]:一般把数据存放在Excel里
    4.利用testNg的IHookable监听器实现失败截图**,并把失败截图附到Allure测试报告中**
    4.1.新建一个类实现把截图存放在指定路径中(getScreenshotAs)的方法
    4.2.新建一个类实现IHookable接口,有一个方法调用截图方法把方法和截图附到Allure报告中
    另一个方法需重写run方法,如果标注为@Test的方法出现异常则调用2中的方法测试方法实现失败截图
    5.利用testNg的IAnnotationTransformer,ITestListener监听器实现全局失败重试
    5.1.新建一个类实现实现IRetryAnalyzer接口,重写retry方法,有两个变量:运行重试的最大次数和公共静态变量正在运行的次数
    5.2.新建一个类实现IAnnotationTransformer接口,重写transform方法,作用是监听所有被Test标注的方法是否有retryAnalyzer属性
    如果有次属性,则不会执行我们设定的重跑机制
    5.3.新建一个类继承TestListenerAdapter类,重写onTestFailure和onTestSuccess方法,作用是每条案例重跑次数用完后,重置当前正在运行的次数为初始值
    以便于下一条案例失败重试
    5.4.新建一个类实现ITestListener接口,重写onFinish方法,作用是把重试的方法都记录到skipped里了,会影响测试报告总数,所有记录要从skipped移除
    5.5.将2.3.4步的监听器添加到在test.xml中
    6.支持并发测试,testng.xml中
    parallel:TestNG是否运行不同的线程来运行这个套件,默认为none,其他级别为methods、tests、classes、instances
    7.可通过testng.xml管理执行测试用例

三.Allure生成测试报告

Allure是一款轻量级并且非常灵活的开源测试报告框架,它支持绝大多数测试框架, 例如TestNG
四.利用Excel进行测试案例管理
表头:IsNegative(是否为正向用例),Desc(用例描述),ErrorTips(错误提示期望值),页面输入框字段 等
每一个Excel的Sheet数据都要要封装成一个对象,所以每个excel的Sheet的表头都要新建实体类
利用POI技术读取EXCEl中的数据,利用反射把Excel的数据存入到List集合中,然后把List集合转换成为二维数组,因为DataProvider注解的方法是数据提供者,一般返回Object[][] 。


四.利用Jenkins进行持续集成

源码管理:Svn,构建触发器:H 20 * * 1,3,5每周1/3/5执行20点一次,构建:maven命令clean test执行测试,构建后操作:发送邮件(Allure报告,构建日志)


五.公用方法

1.选择浏览器驱动
2.加载json字符串
3.初始化1和2的方法
4.获取WebElement方法
5.定位元素高亮显示
6.访问某一地址
7.写入内容
8.点击
9.获得文本值
10.切换Iframe
11.断言
12.下拉选择
13.多窗口的切换
14.退出浏览器
15等待
16.执行Js函数
17.判断页面加载超时
18弹出框处理
19键盘操作



推荐阅读
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 重要知识点有:函数参数默许值、盈余参数、扩大运算符、new.target属性、块级函数、箭头函数以及尾挪用优化《深切明白ES6》笔记目次函数的默许参数在ES5中,我们给函数传参数, ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 本文总结了Java初学者需要掌握的六大核心知识点,帮助你更好地理解和应用Java编程。无论你是刚刚入门还是希望巩固基础,这些知识点都是必不可少的。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
author-avatar
甜甜deX
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有