请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 643|回复: 0

Java+selenium 自动化测试--自动化测试模型介绍

[复制链接]

4

主题

5

帖子

22

积分

超级版主

Rank: 8Rank: 8

积分
22
发表于 2020-12-6 20:47:53 | 显示全部楼层 |阅读模式
自动化测试框架是一个集成体系,这个体系中包含测试功能的函数库、测试数据源、测试对象识别标准以及可重用的模块。
一、线性测试
线性测试:通过录制或编写脚本,一个脚本完成一个场景(一组完成功能操作)通过对脚本的回放来进行自动化测试。这是早期进行自动化测试的一种形式。

优势是每一个测试脚本都是独立的,任何一个脚本文件拿出来都能单独运行;缺点是用例的开发和维护成本高,这种模式下数据和脚本是混在一起的,如果数据发生变化,脚本也需要进行变更。

二、模块化与库
模块化与库:在实际自动化测试过程中,比如发帖、回贴操作,都需要进行登录操作,采用线性脚本,每个脚本都需要登录代码,此时可以把重复的部分写成一个公共的模块,需要的时候进行调用,提高编写脚本的效率
这么做有两方面的优势:
提高开发效率,不用重复的编写相同的脚本;
方便代码维护,假设登录模块发生了变化,只用修改公共的登录脚本就行,其它调用登录模块的脚本不需要做任何修改。



编写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|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-6-26 16:53 , Processed in 0.040223 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表