(QTP)vbscript中Function与Sub的区别

QTP/UFT 专栏收录该内容
75 篇文章 1 订阅

一、Function与Sub概述:
Sub(子过程): sub是Subroutines的缩写,它的意思是子程序,它是将一段具有某种特定功能的语句区块单独编写成一个独立的程序,给予特定名称 。

Function(函数):表示每个输入值对应唯一输出值的一种对应关系 ,具备 Sub 的功能。

二、Function与Sub异同
相同点:
1)Sub和Function都是 vbscript 的过程,
2)可以传递参数,
3)是业务操作或业务处理的封装,都可以被重复调用。

不同点:
1)Sub无返回值,而Function可以有返回值。
2)调用Sub 和 Function也不同

三、举例[引用之前网上看的一个例子]:
大家应该都知道的谈恋爱的过程。有些人只想知道他谈恋爱的过程(Call Sub)。有些人既想知道过程,又要知道最终结果有没有结婚(Call Function)

假设:谈恋爱这个过程,由给MM打电话、陪MM逛街、给MM送礼物等等动作组成。

那么,Sub 谈恋爱()和Function 谈恋爱()有什么不同呢?

1)Sub 谈恋爱
Sub 谈恋爱()
   给MM打电话
   陪MM逛街
   给MM送礼物
End Sub

调用方法:因为Sub没有返回值,只要在代码中: Call 谈恋爱()

2)Function谈恋爱
Function 谈恋爱()
   给MM打电话
   陪MM逛街
   给MM送礼物
   If (mm愿意和他结婚) Then
       谈恋爱 = 成功
   Else
       谈恋爱 = 失败
   End If
End Function

调用方法:因为Function有返回值,所以可以把函数返回值赋给变量,只要在代码中:result = 谈恋爱()

 

这些内容,在我的自动化测试视频教程中,也有专门的一节课程进行讲解。

  • 3
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

第1章 测试脚本开发从零开始 5 1.1 自动化测试从零开始 5 1.1.1 什么是自动化测试 5 1.1.1.1 引言 5 1.1.1.2 自动化测试能做到什么及其优势,你心知肚明吗 6 1.1.1.3 自动化测试无法做到的事及其劣势分析 7 1.1.1.4 何时适合引入自动化测试 8 1.1.1.5 何时避免展开自动化测试 9 1.1.2 严格的自动化测试流程 11 1.1.2.1 影响自动化测试成功否的关键因素是流程 11 1.1.2.2 自动化测试项目“标配” 18 1.1.3 自动化测试用例设计详解 19 1.1.4 教父级自动化测试工具QTP 22 1.1.5 总结 24 1.2 帮助文档(HELP)-QTP的说明书 25 1.2.1 永远任劳任怨的良师益友“F1” 25 1.2.1.1 “F1”的简单介绍 25 1.2.1.2 如何获取最新的帮助文档 27 1.2.2 妙用F1可事半功倍 29 1.2.2.1 焦点功能引导 29 1.2.2.2 脚本定位跟踪 31 1.2.3 请遗忘脑的代码,掌握查阅Example实例技巧 33 1.2.3.1 封装方法实例查阅 33 1.2.3.2 VBScript方法函数查阅 35 1.2.4 总结 36 1.3 录制回放—QTP的开关 37 1.3.1 请拒绝“录制”,再开始你的实际项目之旅 37 1.3.1.1 引言 37 1.3.2 录制功能更多的只是新人学习时的利器 39 1.3.2.1 录制相关功能只需把握几个重点 39 1.3.2.2 为什么说录制是学习利器,有根有据,请听我细细道来 52 1.3.3 录制时需注意模式的切换 54 1.3.3.1 3种录制模式的基本介绍 54 1.3.3.2 Analog Recording和Low Level Recording的区别规则 56 1.3.4 有必要让你掌握尤其重要的QTP回放机制 58 1.3.5 总结 68 1.4 认清并请远离QTP的脚本录制模式 70 1.4.1 QTP的两种视图及思维转换 70 1.4.2 总结 74 1.5 QTP精华—对象库(上)之基础攻略篇 75 1.5.1 引言 76 1.5.2 对象库的出现改写了软件测试历史 76 1.5.3 一个简单的实例介绍对象库原理、机制及操作流程 77 1.5.3.1 对象模型的老大Object Identification和对象库的暧昧关系 77 1.5.3.2 以一个实例囊括对象库的原理机制操作流程并揭开整个篇章 85 1.5.4 对象库基本操作 86 1.5.5 Object Spy让对象无处藏身 110 1.5.5.1 结交新朋友—侦探Jack 110 1.5.5.2 捕获对象时的模式切换 117 1.5.6 对象库的最高指挥官(Object Repository Manager) 120 1.5.6.1 使用公共对象库更有利于项目管理 120 1.5.6.2 对象库的对比合并 123 1.5.7 总结 130 1.6 对象库(下)之进阶编程篇 131 1.6.1 引言 131 1.6.2 基于Expert View的对象库编程必备知识 132 1.6.2.1 手写代码的3种方式 132 1.6.2.2 其他补充知识点 144 1.6.3 封装对象模型—Test Objects VS Run-time Objects 151 1.6.3.1 解密测试对象运行时对象 151 1.6.3.2 三兄弟GETRO、GETTO、SETTO各显神通 152 1.6.3.3 对象封装属性的真正源头 160 1.6.4 梳理运行时对象的封装自身接口的属性区别 163 1.6.4.1 解读对象的自身接口 163 1.6.4.2 教你如何成为一名黑客 163 1.6.5 几种常见对象无法识别或识别错误的原因 168 1.6.6 总结 170 1.7 描述性编程(Descriptive Programming) 171 1.7.1 一点都不高深的描述性编程技术 172 1.7.2 掌握描述性编程的两种写法 173 1.7.3 Object IdentificationSpy结合DP的妙用 177 1.7.4 描述性编程的妙用以及对象库编程的混搭 180 1.7.5 终极对决—对象库编程(OP)?VS描述性编程(DP) 186 1.7.6 总结 186 1.8 数据池(Data Table)的应用 187 1.8.1 引言 187 1.8.2 学会使用DataTable进行参数化 188 1.8.2.1 为什么要进行参数化 188 1.8.2.2 如何具体操作 191 1.8.2.3
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值