HttpRunner 实现参数化数据驱动机制_软件测试_信息工程_码蚁之家_www.codes51.com
返回首页
专题
网络编程
ASP教程 .NET教程 PHP教程 JSP教程 C#教程 Java教程 Delphi教程 VB教程 C/C++教程 Android开发 IOS开发 Windows Phone开发 Python教程 Ruby教程 移动开发 其他编程教程
网页制作
HTML教程 CSS教程 Dreamweaver教程 FrontPages教程 Javascript教程 web前端
数据库
SqlServer MySql Oracle Access DB2 SQLite 其他数据库
图形设计
photoshop教程 Fireworks教程 CorelDraw教程 Illustrator教程 AutoCad教程 FLASH教程
操作系统
Windows xp教程 Windows 7教程 Windows 8教程 Windows 2003教程 Windows Server 2008教程 Linux教程 Windows 10
网站运营
建站经验 SEO优化 站长心得 网赚技巧 网站推广 站长故事
手机学院
手机速递 安卓教程 iphone教程 手机评测 手机技巧 手机知识 手机应用 手机游戏 手机导购
网店宝典
开店指导 开店经验 网店装修 网店推广 网店seo 网购技巧
软件教程
办公软件 系统工具 媒体工具 压缩工具 图文处理 文件管理
范文之家
自我介绍 自我鉴定 写作模板 合同范本 工作总结 贺词祝福语 演讲致辞 思想汇报 入党申请书 实习报告 心得体会 工作计划 简历模板 工作报告 导游词 评语寄语 口号大全 策划书范文
信息工程
软件工程 企业开发 系统运维 软件测试
移民之家
移民动态 移民政策 移民百科 移民生活 技术移民 投资移民
知识大全
母婴 数码 摄影 装修 美文 常识 时尚 婚嫁 美食 养生 旅游 兴趣 职场 教育 文学 健康
问答大全
电脑网络 手机数码 QQ专区 生活 游戏 体育运动 娱乐明星 休闲爱好 文化艺术 社会民生 教育科学 健康医疗 商业理财 情感家庭 地区问题 其他
编程问答
IOS Android .NET Java C/C++ Delphi VC/MFC 其他语言 PHP MSSQL MYSQL Oracle 其他数据库 Web开发 Windows Linux 硬件/嵌入开发 网络通信 移动开发 云计算 企业IT 游戏开发
笑话大全
幽默笑话 爱情笑话 成人笑话 校园笑话 爆笑笑话 综合笑话 古代笑话 现代笑话 国外笑话

HttpRunner 实现参数化数据驱动机制(1/9)

来源:互联网  时间:2018/2/27 11:13:18
要造一个轮子,最好是先看下现有知名轮子的实现机制。之前有用过一段时间的 LoadRunner,对其参数化机制印象蛮深的,虽然它是性能测试工具,但在脚本参数化方面是通用的。

背景

自动化测试中,经常会遇到如下场景:

1、测试搜索功能,只有一个搜索输入框,但有10种不同类型的搜索关键字;
2、测试账号登录功能,需要输入用户名和密码,按照等价类划分后有20种组合情况。

这里只是随意找了两个典型的例子,相信大家都有遇到过很多类似的场景。总结下来,就是在我们的自动化测试脚本中存在参数,并且我们需要采用不同的参数去运行。

经过概括,参数基本上分为两种类型:

  • 单个独立参数:例如前面的第一种场景,我们只需要变换搜索关键字这一个参数
  • 多个具有关联性的参数:例如前面的第二种场景,我们需要变换用户名和密码两个参数,并且这两个参数需要关联组合

然后,对于参数而言,我们可能具有一个参数列表,在脚本运行时需要按照不同的规则去取值,例如顺序取值、随机取值、循环取值等等。

对于这一块儿,没有太多新的概念,这就是典型的参数化和数据驱动。遗憾的是,当前HttpRunner并未支持该功能特性。

考虑到该需求的普遍性,并且近期提到该需求的的人也越来越多(issue #74, issue #87, issue #88, issue #97),因此趁着春节假期的空闲时间,决定优先实现下。

经过前面的场景分析,我们的目标已经很明确了,接下来就是如何实现的问题了。

借鉴 LoadRunner 的数据参数化

要造一个轮子,最好是先看下现有知名轮子的实现机制。之前有用过一段时间的 LoadRunner,对其参数化机制印象蛮深的,虽然它是性能测试工具,但在脚本参数化方面是通用的。

我们先看下在 LoadRunner 中是如何实现参数化的。

在 LoadRunner 中,可以在脚本中创建一个参数,然后参数会保存到一个.dat的文件中,例如下图中的psd.dat

.dat文件中,是采用表格的形式来存储参数值,结构与CSV基本一致。

对于单个独立参数,可以将参数列表保存在一个单独的.dat文件中,第一行为参数名称,后续每一行为一个参数值。例如本文背景介绍中的第一类场景,数据存储形式如下所示:

1

2

3

4

Keyword

hello

world

debugtalk

然后对于参数的取值方式,可以通过Select next rowUpdate value on进行配置。

Select next row的可选方式有:

  • Sequential:顺序取值
  • Random:随机取值
  • Unique:为每个虚拟用户分配一条唯一的数据

Update value on的可选方式有:

  • Each iteration:每次脚本迭代时更新参数值
  • Each occurrence:每次出现参数引用时更新参数值
  • Once:每条数据只能使用一次

而且,可以通过对这两种方式进行组合,配制出9种参数化方式。


上一篇Java 性能测试的四项原则
下一篇性能测试框架Telemetry简介
明星图片
相关文章
《 HttpRunner 实现参数化数据驱动机制》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)