Java+selenium 自动化测试--自动化测试模型介绍
自动化测试框架是一个集成体系,这个体系中包含测试功能的函数库、测试数据源、测试对象识别标准以及可重用的模块。
一、线性测试
线性测试:通过录制或编写脚本,一个脚本完成一个场景(一组完成功能操作)通过对脚本的回放来进行自动化测试。这是早期进行自动化测试的一种形式。
优势是每一个测试脚本都是独立的,任何一个脚本文件拿出来都能单独运行;缺点是用例的开发和维护成本高,这种模式下数据和脚本是混在一起的,如果数据发生变化,脚本也需要进行变更。
二、模块化与库
模块化与库:在实际自动化测试过程中,比如发帖、回贴操作,都需要进行登录操作,采用线性脚本,每个脚本都需要登录代码,此时可以把重复的部分写成一个公共的模块,需要的时候进行调用,提高编写脚本的效率
这么做有两方面的优势:
提高开发效率,不用重复的编写相同的脚本;
方便代码维护,假设登录模块发生了变化,只用修改公共的登录脚本就行,其它调用登录模块的脚本不需要做任何修改。
编写testNG测试类:
三、数据驱动
数据驱动:是自动化的一个进步,从本意来讲,数据的改变(更新)驱动自动化的执行,从而引起结果改变。相当于把测试数据进行参数化,输入数据的不同从而引起输出结果的变化。
举例:
driver.get(“https://www.baidu.com”);
String[] searchtxt = new String[]{“12306”,“火车票”,“selenium”};
for(String search:searchtxt){
driver.findElement(By.id(“kw”)).sendKeys(search);
driver.findElement(By.id(“su”)).click();
Thread.sleep(3000);
driver.navigate().back();
}
从上面的例子可以看出,不管我们读取的是列表、字符串还是txt、csv等文件,都可以实现数据与脚本的分离,也就是参数化。
使用表格进行参数化:
当需要同时使用多个参数的时候,使用之前提供的方式就不太方便,比如,要参数化一个注册表单,表单需要填写的信息有用户名,密码,年龄,邮箱等,这个时候可以通过表格表单来解决该问题。
1、创建userinfo.xls文件,如下图:
2、利用java第三方工具包poi工具读取execl
3、读取后给testng提供测试数据
使用函数进行参数化:
函数可以预先给参数化赋值,借助这个特性,可以通过函数调用的方式进行参数化。
四、关键字驱动
关键字驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑。
主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),依据不同对象还有其他对应参数。关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。
关键字驱动测试方法把测试脚本的创建分成两个阶段:计划阶段和实现阶段。
计划阶段:分析应用程序,并决定哪些对象和操作会被测试过程使用到,决定哪些操作需要使用个性化的关键字来提供额外的功能,从而完成清晰的业务操作,并且最大化测试的效率和可维护性。
实现阶段:创建对象库,对象库中每一个对象都能唯一对应被测试应用程序上的界面对象。开发业务层面的关键字和功能指令库,用于驱动测试应用程序的各项功能,实现自动化测试。
QTP 、 robotframework 、selenium IDE 等自动化工具就是典型的关键字驱动(填表格)
下面二张图是robotframework中的截图:
更多技术分享
衷心希望文章有帮助到大家,如有其他问题,也欢迎大家前来交流和补充(关注微信公众号:程序媛木子来领取海量软件测试资源(有清晰的思路,有的时候比确切的答案更重要),分享更多技术、面试资料,大家也可以加入qq(**644956177)**群里还有同行一起交流技术
Java+selenium 自动化测试--自动化测试模型介绍相关推荐
- java + selenium做自动化测试
我们使用的是chrom浏览器来做自动化测试,首先检查本地安装的chrom浏览器版本是多少. 再去下载对应的selenium插件 下载地址:http://npm.taobao.org/mirrors/c ...
- Java+Selenium+Testng自动化测试学习(三)— 断言
1.修改Login类加入断言: 断言:检查我们操作页面后得到的结果与我们预期的结果是否一致. 2.使用xml文件运行所有的测试类: Login类写入两个测试用例: package com.test;i ...
- 乐玩自动化测试模块_自动化测试模型(一)自动化测试模型介绍
一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库,测试数据源,测试对象标准,以及各种可重用的模块.自动化测试在发展过程中经历了以下几个阶段,模块驱动测试,数据驱动测试及对象驱动测试 ...
- 《手把手教你》系列基础篇之(一)-java+ selenium自动化测试-环境搭建(上)(详细教程)
1.简介 jmeter系列的文章结束,本来想趁热打铁顺别将Jmeter和接口测试介绍一下,但是感觉Jmeter时间太长了怕大家吃腻了,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有ja ...
- java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离
1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 给我们的框架分为3层,分别是叫逻辑层,数据层,对象层. 这三层的存储格式都用xml来表示. 1.逻辑层 (test ...
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
设计自己的基于Selenium的自动化测试框架-Java版(2) -定义自己的工作流程 Work flow chart 上图是整个工作流程,红色虚线上面的需要手动来完成,红色虚线下面的实现自动化. 我 ...
- Selenium自动化测试工具的介绍与使用
Selenium自动化测试 什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行 结果.总的概括即:将人为驱动的测试行为转化为机器执行 ...
- java+testng+selenium的自动化测试代码
java+testng+selenium的自动化测试代码 前言 这是用testng框架加selenium做的一个UI自动化测试的项目 Java代码 package com.justin;/*** @a ...
- Java+selenium简单实现web自动化测试
最近在转行软件测试,有点艰难,为了提高自己的竞争力,只有不断的学习,学习多一点技术和知识. 这次要学习的是Java+Selenium的Web自动化测试,虽然这个自动化测试技术已经少有人用,或者说已经没 ...
最新文章
- 最新发现6个高质量网站,让人眼前一亮!
- 每日一皮:程序员新手尝试新框架的时候
- 从技术角度谈一谈,我参与设计开发的手Q春节红包项目--转
- 如何验证登录oracle,Oracle登录验证方式详解
- JAVA集合(四、ConcurrentHashMap)
- mysql存储过程输出多个参数值_MySQL 存储过程返回多个值
- 语音识别结合应用场景之后
- Jquery Sparklines ref
- mysql同步 触发器_MySQL触发器运用于迁移和同步数据的实例教程
- 前端实时可视化工具livereload安装和使用
- 安卓程序运行显示permission is only granted to system apps的解决方法
- Elastic Search Java API(文档操作API、Query DSL查询API)、es搜索引擎实战demo
- EMUI10开启公测!华为P30系列率先尝鲜,详细升级教程奉上
- 【软件应用】word数学公式插件TeXsword安装
- A1033 To Fill or Not to Fill
- 蓝屏代码WHEA_UNCORRECTABLE_ERROR,一次蓝屏但是没有dump日志的一次维修电脑经历
- 计算机视觉编程——基本的图像操作和处理
- 南京软世通科技11-19笔试题
- ThinkPad E14 G2 笔记本声音无法外放问题的解决办法
- 大厂都喜欢这样问Redis,哨兵、持久化、主从、手撕LRU,我都整理好了
热门文章
- idea 使用时的一些问题
- 数据库表关联关系的基础知识
- Oracle GoldenGate Director安装和配置(无图)
- How To Fix: SCP And SSH Login Prompt Is Very Sl...
- Linux 环境边配置边学(针对家里电脑) 【五】
- mysql时间 gt_关于Mysql 5.6 TIMESTAMPDIFFgt;=和gt;的一个问题 - SegmentFault 思否
- python面试题及答案2020_2020年python面试题汇总(最新)
- 计算机辅助普通话水平测试指导,计算机辅助普通话水平测试指南38563
- arcgisserver修改服务器地址,ArcGIS 10.1 for Server入门(7-6)ArcGIS for Server 10.1 服务迁移与恢复--多台服务器...
- C++函数重载的概念