VS 2010 测试功能学习(九) - 数据驱动的手工测试用例(@Parameter)

学 Simulink——基于递推最小二乘法(RLS)的工业电机转动惯量 J在线辨识仿真 Te 估算 = 1.5·p·(ψ·iq + (Ld-Lq)·id·iq)回归量:φ(k)=−ω˙(k), y(k)=Te​(k), θ=J。仿真:电机加速 0→1500rpm,观测 J^(k)→Jnom​。(可选) Jtrue​切 0.04(双惯量负载)→ 看跟踪。电机机械运动方程:Te​−TL​=J⋅ω˙+B⋅ω。J^(0)=0.005→收敛至0.02kg⋅m2✔。Te​:电磁转矩(Nm),已知(来自电流环输出)仅需 Te​,ω(驱动器已有)→ 无额外传感 ✔。 阅读详情

     在上一篇博客《RnP与Coded UI自动化测试》中介绍了如何编写、录制和播放手工测试用例,以及如何由录制的内容生成Coded UI Test(CUIT)自动化测试用例。那里所使用的测试用例比较简单,仅测试了计算器的加法功能。而在实际的测试工作中,在测试步骤系统情况下,往往会有多组测试输入数据,需要判断每组输入的结果是否正确,这也就是所谓的数据驱动的测试(DDT,Data-Driven Test)。

      Visual Studio 2010对手工测试用例的编写也支持DDT,每个测试步骤允许定义一个或多个参数(@Parameter),一组参数就构成了一个测试输入组,也被称为Iteration。然后只要录制一输入组的测试,就可以将录制内容应以于其它的输入组。马上就要春节了,辛苦了一年,就要回家过年了,买车票是件大事,下面就以"火车网“的车票查询网站的查询操作测试为例。下图是在MTLM中定义的一个测试用例,一组执行步骤,但有多组输入数据:

 

  1. 打开 www.huoche.com.cn 页面
  2. 输入 @起始车站
  3. 输入 @到达车站
  4. 查询
  5. 关闭浏览器

     上面的测试步骤很简单,唯一值得注意的就是“@起始车站”和“@到达车站”,它们实际上是为两个步骤分别定义的参数,而参数的具体组合最下面的表格所示,表中每一行就是一个测试输入组合。而参数的创建则是通过测试步骤上面的“@ Insert Parameter”按钮完成的。在Test Runner中录制一个Iteration的执行时,当执行到一个带有参数的步骤时,测试步骤会被展开,一个小箭头指到第一个参数上,如下图所示。

 

      此时Test Runner会自动将这个参数对应的内容拷贝到剪贴板中,测试人员只要通过CTRL+V将其粘贴到要输入的位置就可以了。可不要小瞧这一操作,Test Runner在幕后做些重要工作,它要记录这个参数@起始车站和哪个界面控件进行了绑定。这样在录制完一组数据后,自动执行其它组数据时,工具就知道该把数据放到位置了。

      下图显示了要测试用的查询页面,我们在“出发站”输入框中按CRTL+V粘贴起始车站“北京”。

      在操作完毕后,如果这一测试步骤还有参数Test Runner会自动下移一下箭头,用户可以继续粘贴下一个参数到指定位置,上一个参数则会被显示为:

 

 

      在录制完一组输入 (Iteration)的执行后,录制的操作步骤可以直接应用到其它组输入上,这样执行起来就方便多了,不需要给每个Iteration都手工录制一遍,这才是真正体现了数据驱动测试(DDT),即一次录制适用于多组不同数据。在Test Runner左上角的位置,可以切换不同的Iteration。例如:上面录制采用的输入是 北京 -> 上海,在Test Runer中选择其它Iteration时,Test Runner会自动用这个Iteration的数据替换掉测试步骤中@标识的参数,如下图所示:

 

      在录制过程中,可能有些步骤是你不想要的,可以展开Test Runer最右下角的Action Captured,显示出所有已经录制的操作,你可以选择删除其中不需要的内容。另外,在《VS 2010 测试功能学习(三) 真正的主角儿》中我曾经提到过,测试管理的核心是TFS,在MTLM中进行的所有这些操作需要连接到TFS才能完成,这是一个优势,但有时候也是问题。一旦TFS挂了,MTLM中的所有这些功能也就全歇了,呵呵!

 


       除了上述的手动测试使用DDT,也可以直接在Coded UI Test (CUIT) 自动互测试用例代码中直接使用Data Driving, 详细内容可参见:

 


参考资料:

  1. Microsoft Test Runner series – part 5 – Data Driving
  2. Content Index for Coded UI Test
Python爬虫实战:全自动采集银行理财产品收益率数据 本文通过Playwright动态爬虫技术,成功实现了对银行理财产品收益率数据的实时采集,并通过 Pandas 数据清洗、SQLite 存储、调度自动化等模块,构建了一个可扩展的银行理财数据抓取系统。理财非儿戏,数据做决策。掌握银行收益信息是我们迈向理性投资的第一步。希望这套工具对你有所帮助! 阅读详情

相关推荐

通过FlinkCDC将MySQL中变更的数据写入到kafka(DataStream方式)

文章目录前言一、CDC的种类?二、通过FlinkCDC将数据从MySQL导入到Kafka1.核心代码2.工具类3.可能会出现的错误及解决解决: 前言 CDC的Change Data Capture(变更数据捕获)的缩写 FlinkCDC的核心思想是监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。 一、CDC的种类? CDC 主要分为基于查询和基于 Binlog 两种方式,简述两者的区别:

不会打球的摄影师不是好程序员 9622

软件功能测试场景设计,测试用例设计方法场景VS功能

1、目的站在用户的角度,以用户的使用逻辑及操作习惯为出发点,结合功能用例的设计方法,使用例设计更符合用户使用逻辑更具有可执行性,从而最大程度上覆盖用户需求。2、使用者用例设计、执行及热爱测试的人员3、测试用例设计方法按照不同的规则可以将测试用例分为四个部分:场景用例(用户场景)、系统用例(用户场景的细化)、功能用例(基于业务规则、界面)、设计指标(基于环境、性能、安全等)。◆ 用户场景用例:按照用...

weixin_34512248的博客 1675

AD24-层次原理图的设计

4)在原理图关联对话框中双击需要放置方块图的子图,即激活方块图的放置,单击母图的空白处进行放置。3)设计-Create Sheet From Sheet,进入原理图关联对话框。4)放置-添加图纸入口,放置方块图的内部I/O端口并进行名称更改。2)放置-页面符,放置页面符,并执行Table完成属性设置。5)执行Ctrl+W,端口和内部I/O端口对应连接。1)创建一个工程并完成子图的每页原理图的设计。1)新建项目,创建Main原理图页。3)放置-的端口,放置方块图的端口。以上,就是层次原理图页的设计。

qq_52761962的博客 4914

@Param注解的用法解析

@Param注解的用法解析一.xml形式二.注解形式 一.xml形式 实例一 @Param注解单一属性 dao层示例 Public User selectUser(@param(“userName”) String name, @param(“userpassword”) String password); xml映射对应示例 <select id=" selectUser" resultMap="BaseResultMap"> select * from user_user_

Hello World 9835

ADS软件操作(8)——负载牵引(Loadpull)

负载牵引:通过不断调节输入和输出端的阻抗,找到让有源器件输出功率最大的输入、输出匹配阻抗。这种方法可以准确地测量出器件在大信号条件下的最优性能,反映出器件输入、输出阻抗随频率喝输入功率变化的特性,为器件和电路的设计优化提供了坚实的基础。白话版:由于通信制式越来越复杂,对放大器的线性度和效率要求越来越高。由于放大器的效率和是个永恒的矛盾,所以如何平衡这样的矛盾达到系统设计的最优就是一个需要解决的难题。如何解决?调节输入和输出端的阻抗也就是负载牵引 (Load-Pull)原理來改善点,从而降低谐波的。

Zhuanzhuyan的博客 4952

从mseed到SAC格式转换全攻略:mseed2sac工具安装与批量处理技巧

本文详细介绍了如何将mseed格式的地震数据高效转换为SAC格式,涵盖mseed2sac工具的安装、单文件转换技巧、批量处理自动化实现以及元数据高级处理策略。通过具体命令和脚本示例,帮助地震学研究者快速掌握数据预处理的关键技术,提升波形数据分析效率。

ruby5的博客 927

深入理解参数-@Param和 对象作为参数重要

深入理解参数 1.parameterType parameterType: 接口中方法参数的类型, 类型的完全限定名或别名。这个属性是可选的,因为 MyBatis可以推断出具体传入语句的参数,默认值为未设置(unset)。接口中方法的参数从 java 代码传入到mapper 文件的 sql 语句。 使用parameter的配置文件如下: <?xml version="1.0" en...

weixin_48370579的博客 3096

视觉Transformer实战 | Data-efficient image Transformer(DeiT)详解与实现

在计算机视觉领域,Vision Transformer (ViT) 已经证明了纯 Transformer 架构在图像分类任务上的强大能力。然而,ViT 通常需要在大规模数据集上预训练才能达到最佳性能,DeiT (Data-efficient image Transformer) 通过引入一系列训练策略和优化,使得 Transformer 模型能够在相对较小的数据集上取得优异表现。本节将详细介绍 DeiT 的技术原理,并使用 PyTorch 从零开始实现 DeiT 模型。

盼小辉丶的博客 1340

@Param注解原理

大部分文章告诉你在Mapper接口的方法参数上使用@Param注解,可是有的时候不用也没有问题,还有的时候用了@Param注解也还是报错,今天我们探究下这个注解原理,以后你碰到这个问题就不再懵逼了。

weixin_38954520的博客 3307

2025美赛E题为农业留出空间(附代码+全保姆教程)Making Room for Agriculture

有机农业的核心在于减少化学投入,促进自然控制和可持续性。变量定义CCC: 作物种群III: 害虫种群PPP: 天然捕食者种群(蝙蝠、鸟类等)BBB: 生物多样性水平(以种类数量表示)SSS: 土壤健康指数(影响植物繁殖与作物生长)EEE: 农业生态系统的整体稳定性。

博客 1494

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 64

Swagger学习⑦——@Parameter注解

Parameter注解是库的一部分,属于。它用于描述 API 操作中的参数,包括查询参数、路径参数、请求头参数等。通过@Parameter注解,可以为参数提供详细的元数据,例如描述、是否必需、示例值等,从而生成更清晰的 OpenAPI 文档。

一个写了10年bug的程序员日常笔记。 3277

矩阵奇异值分解算法(SVD)的导数 / 灵敏度分析

设矩阵X∈Rm×nX∈Rm×nXUΣV⊤XUΣV⊤U∈Rm×mU∈Rm×m为左奇异向量矩阵;V∈Rn×nV∈Rn×n为右奇异向量矩阵;Σdiag⁡σ1σ2σrΣdiagσ1​σ2​σr​为奇异值对角阵(rrank⁡XrrankX我们关心:当XXX发生微小扰动dXdX时,UΣVUΣV如何变化?dXdUΣV⊤dX。

qq_36812406的博客 1750

mysql为字段添加索引_Mysql优化-为表字段添加索引

Java基础---AWT流式布局FlowLayout package net.zyz; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...TestNG 三 测试方法一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正...

weixin_42129970的博客 111

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

@RequestBody的使用

提示:建议一定要看后面的@RequestBody的核心逻辑源码以及六个重要结论!本文前半部分的内容都是一些基 本知识常识,可选择性跳过。 声明:本文是基于SpringBoot,进行的演示说明。 基础知识介绍: @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBo...

JustryDeng 104万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Swagger学习⑧——@Parameters注解

注解是库的一部分,属于。它用于在 API 操作中同时描述多个参数。与@Parameter注解不同,是一个容器注解,可以包含多个@Parameter注解,从而更简洁地描述多个参数。

一个写了10年bug的程序员日常笔记。 1816

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

MySql中MySqlParameter的用法

在c#中,向表person插入一条数据(表person包括两列:id和name),使用MySqlParameter定义表中各列的值。 static void Main(string[] args) { string connectionString = "Server='localhost';Database='test';UId='root';Password='1...

万里归来少年心 2万+

如何在VectorCAST中测试可变参数函数?

在对项目代码做单元测试时,有些函数可能是可变参数的函数,针对可变参数函数生成测试用例后,会发现参数树中只能找到固定的参数部分,可变参数部分无法输入参数。这是因为VectorCAST不能直接在参数树中显示出没有名称的参数,所以在测试用例设计界面中无法找到可变参数的部分。在这种情况下,如果需要测试可变参数函数,可以借助User Code来测试被测函数。

Trinity_Techologies的博客 3422

有关@RequestParameter加与不加的区别

有如下几种写法 @RequestMapping("/user") public String test(@RequestParam String username) { return null } @RequestMapping(value = "/register") public String register(@RequestParam(value = "name"...

zhuojun.yu的博客 4749

用vs2019调试 openssl test用例

以 x509_check_cert_pkey_test为例,通过查找makefile文件知道需要链接: test\libtestutil.lib libcrypto.lib 包含main函数 包含文件: 工程: 测试命令行在下面文件中: test\recipes\60-test_x509_check_cert_pkey.t libtestuntil.lib 中实现了main,并且会调用setup_tests(): 测试文件中必...

sunbo008的博客 798

VS2010测试方面的文章

      VS 2010 带来了更多崭新的功能,这些新功能贯穿了整个测试周期 : 测试计划、测试执行和测试执行进度跟踪,VS 2010 引入了一个全新的工具,称作“微软测试与实验室管理器” (Microsoft Test and Lab Manager, MTLM),MTLM是一个单独运行的工具 (内部开发代号“Camano”),用于创建测试计划、管理测试用例、运行测试用例以及测试结果

shanyou的专栏 7794

Verilog中Parameter用法-常量定义与参数传递(例化传递、defparam传递)

Verilog中用parameter来定义常量,即用parameter来定义一个标识符来代表一个常量,称为符号常量,即标识符形式的常量,采用标识符代表一个常量可以提高程序的可读性和可维护性。另一个很有用的用途就是可以利用defparam或者在模块实例化的时候进行参数传递(即重写) 一、parameter声明常量 parameter定义常量,可以定义在模块内部或外部;常用于定义...

CLL_caicai的博客 10万+

VS 2010 测试功能学习(十) - 从Generalist到Specialist

题外话:今天一早发现的优快云博客上的图片又都回来了,算来图片审查已经进行了一月左右了,之间俺也牢骚和抱怨过多次,不过终于在春节回来了,多少是件让人高兴的事情!      最近看到的一些介绍Visual Studio 2010(以下简称VS2010)测试功能的文章中,经常出现类似下面这样的一张图。它的大概意思是说,VS 2010为具备不同编码(coding)能力的测试人员,提供了多种测试工具/

Jeffrey Zhou 的专栏 3593

vs新特性学习总结

VS2010 新特性 下面列出了一些新的功能: 1.代码编辑器 新的代码编辑器使代码更易于阅读。可以通过按 CTRL 并滚动鼠标轮放大文本。此外,单击 Visual C#  或 Visual Basic 中的符号时该符号的所有实例都将自动突出显示出来。 2.用于 Web 开发的好工具 在Web开发方面,过去依靠Dreamweaver 提供的远程发

bcbobo21cn的专栏 2308

VS 2010 测试功能学习(20) - 建立手工测试用例参数和被测试程序控件的绑定

      三天的Tech.Ed 中国 2010 已经结束,很高兴有这样一个机会认识很多朋友,并能回北京看看,呵呵!今年的TechEd给人留下印象最深的就是 ---云!各种各样的云,私有云、公有云、Azure、Cloud,云出没在会场的各个角落。看来为了不OUT,以后要好好“云里雾里”的学习一下,呵呵!

Jeffrey Zhou 的专栏 3068

VS 2010 测试功能学习(七) - RnP与Coded UI自动化测试

      题外话:昨天去上海浦东机场接闺女,一切还是蛮顺利的,公交机场7线直接从上海火车南站一站直达浦东机场,票价20元,算上乘坐地铁5号和1号线的6元,从我家到机场总共要26元,相对于打的士的220元,还是实惠很多的。在新的上海轨交图上,看到地铁2号线延伸到了浦东机场,只是现在这段还没有通车。机场7线是在地铁3号线的上海南站站2号出口附近,可是俺是乘坐1号线到上海南站的,需要经过换乘通道到3号

Jeffrey Zhou 的专栏 1万+
上一篇: 敏捷Scrum培训有感
下一篇: 我不会选IPad当电子书用 - 原因有二
quicknet
博客等级 码龄25年 398粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值