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

湖南新梦想

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

Java+selenium 自动化测试-- 数据驱动之参数化

[复制链接]

4

主题

5

帖子

22

积分

超级版主

Rank: 8Rank: 8

积分
22
发表于 2020-12-6 20:49:34 | 显示全部楼层 |阅读模式
目录
1.前言
2.读取txt文件实现参数化
3.使用Excel表格参数化
4.使用TestNG.xml文件参数化
5.使用@DataProvider传参
前言
  在上一个随笔中,我们已经自动化测试模型,讲到数据驱动模型。
  数据驱动:是自动化的一个进步,从本意来讲,数据的改变(更新)驱动自动化的执行,从而引起结果改变。相当于把测试数据进行参数化,输入数据的不同从而引起输出结果的变化。
一、读取txt文件实现参数化
准备测试数据:在项目目录下新建一个文件test.txt,内容为三行

用只读的方式打开test.txt,oneline获取一行的数据,如果在txt里面有中文,会出现乱纪,修改文件编码为utf-8,使用utf-8 格式读取
二、使用Excel表格参数化
       当同时使用多个参数的时候,使用之前提供的方式就不太方便,比如,要参数化一个注册表单,表单需要填写的信息有用户名,密码,年龄,邮箱等,这个时候可以通过表格表单来解决该问题。
1、创建userinfo.xls文件,如下图
2、利用java第三方工具包poi工具读取execl
3、读取后给testNG提供测试数据
使用函数进行参数化:
函数可以预先给参数化赋值,借助这个特性,可以通过函数调用的方式进行参数化。
说明:因为后面会详细讲解poi工具读取Excel中的测试数据,本处暂时不讲解
三、使用TestNG.xml文件参数化
  把配置数据写入 TestNG的配置文件TestNG.xml中的parameter节点中,例如下图把url网址。
   读取数据:编写testNG测试用例的时候,通过注解@Parameters("参数名") 读取。例如:@Parameters("url"),然后给后面方法的入参
四、使用@DataProvider传参
@DataProvider方式传参数:
  • 只提供了一个字符串属性:名称,供测试方法作为传递参数的annotation使用
  • 两种DataProvider,一种是返回一个二维数组对象;另外一种DataProvider是返回一个Iterator
  • DataProvider可以向测试方法传递任意类型任意数目的参数
  • 利用DataProvider提供不同的参数集合对一个测试方法进行多次调用
如下图:1. @DataProvider 中准备测试数据
               2. 编写测试用例的时候,通过@Test(dataProvider="test1")来调用
@DataProvider和testNG.xml两种方式的比较

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-6-26 15:51 , Processed in 0.043261 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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