WinRunner介绍 (不断更新)

基于Solaris 开发环境的整体构思 网络精英软件开发与实践,网络通信软件的开发与管理,TCP/IP协议 « 网络精英BUG报告(不断更新中) | 回到主页面 | H.350标准集中视频、SIP端点目录 » 2004年01月12日操作系统 基于Solaris 开发环境的整体构思 网络精英      基于Solaris 开发环 阅读详情
  1. WinRunner在项目中的作用

可以用WinRunner为所测试应用程序的GUI,功能和回归测试创建自动化脚本。

 

 

 

 

 

 

 

  1. WinRunner的测试过程

主要包括如下6个阶段:

1).    创建GUI Map文件:WinRunner可以通过它来识别被测试应用程序中的GUI对象。

2).    创建测试脚本:通过录制,编程,或两者的组合创建。在录制测试脚本时,在你想检查被测试应用程序响应的地方插入验证点。

3).    调试脚本:用调试(Debug)的模式运行测试脚本以确保它们可以平稳地运行。还可以使用WinRunner提供的Step, Step Into, Step out功能来调试脚本。

4).    运行测试:用验证(Verify)的模式运行测试脚本来测试你的应用程序。当WinRunner在运行中碰到验证点时,它会将被测应用程序中的当前数据和以前捕捉的期望数据进行比较,如果发现了任何不匹配,WinRunner将会把目前的情况捕捉下来作为真实的结果。

5).    检查结果:确定测试脚本的成功或是失败。在每次测试脚本运行结束之后,WinRunner会将结果显示在报告中。它描述了所有在运行中碰到的重要的事件,例如验证点,错误信息,系统信息或是用户信息。如果发现在运行中有任何不匹配的验证点,你可以在测试结果窗口中查看期望的和实际的结果。

6).    提交缺陷:如果一个测试脚本是由于所测试应用程序中的缺陷而导致失败的,你可以直接从测试结果窗口中提取缺陷的相关信息。

 

 

 

 

 

 

 

  1. WinRunner 的GUI Map文件

WinRunner利用GUI Map文件来识别应用程序中的对象。它将学习到的窗口或对象信息储存在GUI Map文件中。当WinRunner运行测试脚本时,它利用GUI Map来定位对象。它从GUI Map文件中读取对象的描述并且在被测应用程序中寻找具有相同属性的对象。

在GUI Map文件中的每一个对象都有一个逻辑名称(logical name)和一个物理描述(physical description)。对象的逻辑名称是由其类决定的。在大多数情况下,我们可以将逻辑名称看成是显示在对象上的标签。你可以修改已分配的逻辑名称当它不是十分具有描述性或太长的时候。当对象的属性发生改变时,你必须要修改其物理描述。

 

 

 

 

 

 

 

GUI Map文件的扩展名是".gui"。

GUI Map文件分为两种类型:

·              全局GUI Map文件:一个为整个应用程序使用的GUI Map文件

·              每个测试脚本的GUI Map文件:在每个测试脚本创建之后,WinRunner会自动为其创建一个GUI Map文件。

我们可以通过工具菜单中GUI Map Editor来查看当前载入的GUI Map文件及其内容。GUI Map Editor 显示多个已创建的GUI Map文件和认识到的带有逻辑名和物理描述的窗口和对象。

在录制脚本时,WinRunner会自已学习对象和窗口,并将它们储存在临时的GUI Map文件中。我们可以在General选项中指定是否需要每次都载入这种临时GUI Map。

当我们载入一个GUI Map文件时,关于窗口和对象的信息连同其逻辑名称和物理描述都载入到内存中。因此当WinRunner在一个特定的窗口上运行脚本时,它可以用这些在内存中的信息识别对象。

 

 

 

 

 

 

 

  1. WinRunner的脚本语言

WinRunner的脚本语言是Mercury Interactive’s Test Script Language (TSL),这是一种类C的脚本语言。你可以通过增加另外的TSL函数和编程元素(例如Windows API)或WinRunner的虚拟编程工具(函数生成器(Function Generator))来增强你录制的脚本。

 

 

 

 

 

 

 

  1. WinRunner的录制模式

在WinRunner中,有两种不同的录制模式:

·              环境判断录制(Context Sensitive recording):通过识别GUI对象录制你在被测应用程序中执行的操作。

·              模拟录制(Analog recording):录制键盘的输入,鼠标的点击,和鼠标指针在屏幕上精确的x,y轴

 

 

 

 

 

 

 

  1. WinRunner的运行模式

在WinRunner中,有三种不同的运行模式:

·              验证Verify:使用这种方式来检查你的应用程序

·              调试Debug:使用这种方式来帮助你识别测试脚本中的bug

·              更新Update:使用这种方式来更新测试脚本的期望结果或创建一个新的期望结果文件夹

 

 

 

 

 

 

 

  1. WinRunner的Add-In

载入Add-Ins实际上是将在Add-In中的特殊的函数装载到内存中。当创建测试脚本时,只有这些选中的Add-In中的函数会列在函数生成器中,在运行脚本时,只有那些在载入的Add-In中的函数可以被执行,否则WinRunner将会给出一个不能识别函数的错误信息。

 

 

 

 

 

 

 

  1. WinRunner的验证点(Checkpoint)

验证点可以把被测应用程序的当前行为和早前版本的行为进行比较。

在WinRunner中有4种验证点:

·              GUI checkpoints:验证GUI对象的信息。例如,你可以检查一个按钮是否可用或查看在一个列表中哪一个选项被选中。

·              Bitmap checkpoints:给窗口或所测试应用程序的部分做快照,并把它和早先版本中捕捉的图像做比较。

·              Text checkpoints :在GUI对象或位图中读取文字,使你可以验证它们的内容。

·              Database checkpoints:基于你创建在数据库的查询,检查一个结果集的内容和列、行的数量

Checklist文件包含了我们正在验证的对象的属性和相关信息 。gui*.chk文件包含了期望的结果,并储存在exp文件夹中。 

 

 

 

 

 

 

 

  1. 同步点(synchronization points)

同步点使你可以解决预期的在测试脚本和你应用程序之间的时间问题。例如,如果你创建一个打开数据库应用程序的测试脚本,你可以增加一个同步点以让测试脚本等待直到数据库中的记录载入到屏幕上。

对于模拟测试(Analog testing),你也可以使用一个同步点来确保WinRunner在一个指定的位置重新放置窗口。当你运行一个测试脚本时,鼠标指针沿着准确的坐标行进。重新放置窗口使鼠标指针接触到窗口中正确的元素。

 

 

 

 

 

 

 

  1. 编译模块(compile module)

编译模块实际上也是一种脚本,只不过它包含了一个可以被其它的测试脚本频繁地调用,用户自定义函数集的库文件。当你载入一个编译模块时,它的函数将自动的被编译并保存在内存中。其它的测试脚本可以直接调用它们。

编译模块可以改进脚本的组织和性能。由于你在使用它们之前已经调试过编译模块,因此你的测试脚本只需要少量的错误检查。另外,调用一个已经编译的函数明显地比解释测试脚本中的函数快得多。

当编译模块用来储存可重用的函数时,测试脚本包含了在WinRunner中的可执行文件。编译模块是不可执行的。

在保存为编译模块时,WinRunner会自动执行一次预编译。

默认情况下,包含TSL代码的模块的属性是“main”。主模块可以在其他的模块中被调用执行。除了当WinRunner识别到一个“call”语句时,主模块会被动态地被编译为机器代码。例如:

call cso_init();

call( "C://MyAppFolder//" & "app_init" );

编译模块被载入到内存中以便其他模块引用。

reload ("C://MyAppFolder//" & "flt_lib") 或load ("C://MyAppFolder//" & "flt_lib");

 

 

 

 

 

 

 

  1. 数据驱动测试(data driven tests)

当你测试你的应用程序时,你或许想检查它如何执行有着大量数据集的相同操作。你可以用一个运行10次的循环来创建一个数据驱动测试:每次循环运行时,它由不同的数据集驱动。为了使WinRunner 能够使用数据来驱动测试,你必须将数据连接到所要驱动的测试脚本。这就叫参数化(parameterizing)你的测试。数据存储在一个数据表格(data table)中。你可以手工执行这些操作,或使用DataDriver Wizard来参数化你的测试脚本并储存数据在数据表格中。

数据驱动测试的步骤如下:

·              创建一测试脚本

·              转换为数据驱动的测试脚本并准备一个数据库

·              运行测试脚本

·              分析测试结果

 

 

  13.  启动文件(start up file)

 

在General Options ->Environment-> Startup文本框中,选择或输入你希望作为启动文件的 测试脚本

 

 

 

  14.  输入测试脚本的相关信息

 

在创建一个测试脚本之前,你可以在Test Properties-> General和 Description中输入和脚本相关的信息,如被测功能的类型,测试脚本的详细描述,引用的相关功能说明书文档

 

 

 

  15.  如何处理定制对象(custom objects)?

 

定制对象是不属于WinRunner所使用的标准类之一的任何GUI 对象。WinRunner学习此类的对象为generic "object"类。WinRunner利用obj_mouse_语句来记录在定制对象的操作。

 

如果定制对象和一个标准的对象很相似,你可以映射它为标准类别之一。你也可以在环境判断测试(Context Sensitive testing)时配置WinRunner用于识别定制对象的属性。

 

 

 

  16.  什么是虚拟对象(virtual object)并且如何使用它们?

 

应用程序可能会含有一些外观和行为和GUI对象相似的位图。WinRunner利用win_mouse_click 语句来记录操作。通过定义一个位图对象为虚拟对象,当你录制并运行测试时,你可以教WinRunner将它象一个GUI对象一样对待。

 

 

 

 

 

 

 

 

 

 

 

  12.  无法识别GUI对象的原因

 

 

 

WinRunner会由于以下多种原因导致不能识别GUI对象。

 

 

 

·               不是标准的Windows对象

 

 

 

·               没有安装所需的Add-In

 

 

 

·               如果所使用的浏览器和WinRunner的版本不兼容,GUI Map编辑器将不能认识在浏览器窗口中显示的任何对象

 

 

 

。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

南邮-软件设计实验(C++版) 南邮软件设计 A档 一、分数统计 课题内容:   设计一个分数统计程序。包括学生信息的输入输出以及排序。通过该课题全面熟悉数组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。 课题要求: (1)输入某班级学生的姓名、分数; (2)对(1)的分数进行降幂排列并输出; (3)具有输入输出界面。 示例代码: #include<bits/stdc++.h> using... 阅读详情

相关推荐

Altium Designer 21 DRC检查:从新手到高手,这10个常见错误你踩过几个?

本文详细解析Altium Designer 21 DRC检查中的10个高频错误,包括间距违规、线宽违规、未连接网络等常见问题,并提供精准修复方案和实战技巧。通过分层诊断、智能规则设置和三维排查等方法,帮助工程师从新手进阶为高手,提升PCB设计效率和质量。

weixin_26873711的博客 222

winrunner

<br />1.1 WinRunner是如何工作的<br />WinRunner直观的记录流程可以帮助用户创建稳固的测试案例。WinRunner通过模拟用户行为,例如订购一件商品或打开卖方的一个帐户,来记录下一个典型的业务流程,从而创建一个测试。在记录过程中,您也可以直接编辑生成的脚本,以满足大多数复杂的测试需求。<br />接着,测试人员可以在测试脚本中加入检查点(Checkpoint),这些检查点可以在测试过程中比较预期值和实际值。WinRunner提供各种类型的检查点,包括GUI、位图和Web链接等。

shuibei12的专栏 2354

Ansys Lumerical 启动时出现 Error: Could not connect to Ansys license server specified at 1055@ 的另一种解决办法

昨天在关闭了中之后 就能正常打开 FDTD 了,结果今天想开启出现了同样的报错:我猜测昨天能启动的原因在于关闭之后要重启电脑,并且在重启之后我第一时间打开 lumerical 测试因此端口没有被占用,今天是在电脑启动之后一段时间才打开所以又遇到了端口占用的问题。

qq_51404184的博客 9549

常用软件测试工具

目录 前文 一、JTEST 二、JMETER 三、JUNIT 四、WEBLODE 五、WINRUNNER 六、LOADRUNNER 七、WAS 前文 随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。目前用于测试的工具已经比较多了,这些测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。 总的来说,测试工具的应用可以提高测试的质量、测试的效率。但是在选择和使用测试

MXB_1220的博客 2021

Spring Cloud Gateway 结合OAuth2提供UAA服务

微服务做用户认证和授权一直都是一个难点,随着OAuth2.0的密码模式被作废,更是难上加难了。今天胖哥群里的一个群友搭建用户认证授权体系的时候遇到了一些棘手的问题,这让胖哥觉得是时候分享一些思路出来了。 两种思路 通常微服务的认证和授权思路有两种: 所有的认证授权都由一个独立的用户认证授权服务器负责,它只负责发放Token,然后网关只负责转发请求到各个微服务模块,由微服务各个模块自行对Token进行校验处理。 另一种是网关不但承担了流量转发作用,还承担认证授权流程,当前请求的认证信息由网关中继给下游

duan18888的博客 648

最新版谷歌浏览器Axure插件(免翻墙)

本文介绍了在Chrome浏览器无法直接打开Axure导出HTML文件的解决方法。由于国内网络限制无法访问Chrome商店,需手动下载安装AxureRP扩展插件(提供百度网盘下载链接)。安装步骤包括:1)启用开发者模式;2)拖拽CRX文件或加载解压文件夹;3)勾选"允许访问文件网址"。同时还提示若浏览器版本过低可能无法正常运行,并给出了浏览器升级方法。该教程详细说明了从插件安装到浏览器升级的完整解决方案。

OldCat先生 2973

WinRunner7.6的安装及破解

WinRunner有三种的安装方式:(1)standalone installation(2)network installation(3)workstation installation注:a)安装时要以administration的权限登录系统,以防安装失败时删除软件用。     b)安装完standalone时,ODBC4会默认安装到电脑里,用来连接数据库用。    

加菲猫的快乐生活--我的理想 3537

Labview实现服务器(server)与多客户端(clients)通信

服务器可以接收多个客户端发送的消息,并显示消息来源。 服务器可以发送消息到指定客户端 客户端可以自动连接服务器,断连后重连 客户端可以发送消息到服务器,可接收服务器消息 类似框架可以用做中央服务器及客户端项目

u013809089的博客 7974

测试工具之 LoadRunner & WinRunner

业界知名的LoadRunner、WinRunner,TestDirector和QuickTestPro等自动化测试工具出自Mercury公司。Mercury是全球企业测试市场的绝对领导者。我们来了解一下WinRunner 和 LoadRunner 下面就安装和使用上,我们一起来学习一下这两个工具。 1. WinRunnerMercury WinRunner是行业标准的用于企业I

emilyzhang98的专栏 4068

LoRA 完整解析:从理论到实践

LoRA(低秩适应)是一种高效的大模型微调方法,通过添加少量可训练参数(低秩矩阵)来适配新任务,避免全参数微调的高成本。其核心是将权重更新ΔW分解为两个小矩阵B×A的乘积,大幅减少训练参数量(仅0.1-1%)。LoRA基于内在维度假设,通过低秩约束捕捉核心任务信息,兼具效率与效果。实际应用中,常用配置为秩r=16-32,目标模块选择注意力层的q_proj和v_proj,学习率比全参数微调大10倍(约1e-4)。优势包括参数高效(内存降低60-80%)、多任务适配灵活、保留预训练知识等,已成为大模型微调的主流

echo的博客 1411

B.3【智能标注】:基于Labelstudio的UIE半监督深度学习的智能标注方案(云端版),提效。

Label Studio 所提供的 Machine Learning Backend 提供了一个比较灵活的辅助人工标注的框架,我们通过它确实可以加快 nlp 数据的标注Label Studio 的 enterprise 版本提供了 Active Learning 的流程,不过从其描述看这个流程并不完美,尤其是 fit 部分,由于 Label Studio 低估了「Train」所花费的时间,所以每次标注都自动训练的流程可能并不会那么顺滑(会在链接时候等待一段时间)

丨汀、的博客 1840

WinRunner 退场十年,谁还记得这款自动化测试“祖师爷”?

那段岁月,是中国软件测试行业最宝贵的技术积淀;那些用TSL写下的脚本,是一代测试工程师对质量的初心和信仰。自动化测试的本质不在于工具的新旧,而在于你如何用技术创造价值;未来的测试,属于那些既懂历史、更拥抱未来的人。致敬WinRunner,致敬软件测试的黄金时代!愿我们每一个测试人,都不忘初心,继续在智能化的浪潮中,守护软件世界的质量与信赖。

测试者家园 1175

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

weixin_44119674的博客 440

WinRunner介绍

WinRunner介绍 (不断更新)      WinRunner在项目中的作用可以用WinRunner为所测试应用程序的GUI,功能和回归测试创建自动化脚本。         WinRunner的测试过程主要包括如下6个阶段:1).    创建GUI Map文件:WinRunner可以通过它来识别被测试应用程

popkiler的专栏 4307

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

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WinRunner与QTP的区别

MI网站上的,但是随着版本的不断更新,之间的差别也有变化。 HP QuickTest Professional software ActiveScreen technology offers the industry’s shortest learning curve for testers and its TestGuard technology provides easy to-m

Kiki的专栏-我译,我所爱 4130

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TestDirector概念

TestDirector   TestDirector是业界第一个基于Web的测试管理解决方案,它可以在您公司内部进行全球范围的测试协调。TestDirector能够在一个独立的应用系统中提供需求管理功能,并且可以把测试需求管理与测试计划、测试日程控制、测试执行和错误跟踪等功能融合为一体,因此极大地加速了测试的进程。 电子商务正改变着许多公司在如何规划并建立IT系统方面的决定。常常在一

realduke2000的专栏 1659

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Windows Runner在cicd中的流程

是 CI/CD 系统中专门用于在 Windows 操作系统上执行构建、测试和部署任务的代理程序。它充当了 CI/CD 工具(如 Jenkins、GitHub Actions、Azure Pipelines 等)与 Windows 环境之间的桥梁,负责接收任务指令并在 Windows 系统上执行相应的命令或脚本。触发事件:当代码仓库发生变更(如代码提交、拉取请求等)时,CI/CD 流水线被触发。分配 Runner。

远方雪的专栏 1144

WinRunner的工作流程

WinRunner的工作流程大致可以分为以下六个步骤: 1.识别应用程序的GUI 在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,WinRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大区别是后者对每个测试脚本产生一个GUI文件,

Damys 968

Winrunner经验

 winrunner经验总结1.1 脚本录制规范:基本原则是录制脚本要分开、gui文件要合并、批调用回放验证、可移植回放验证。1.1.1 录制脚本要分开:脚本太大,不仅不利于以后的维护,并且会导致WinRunner的不可预测的错误产生(具体可以参考WinRunner 的Readme文档)。录制时,可以根据测试用例的流程,拆分为几个小流程,对每个小流程分别录制成不同的脚本。1.1.2 gui文件要合

longmain的专栏 610

常见软件测试工具

<br />工具名称:WinRunner<br />来源: Mercury公司 <br />类型:功能性测试         <br />费用:收费昂贵         <br />功能概要: Winrunner 最主要的功能是自动重复执行某一固定的测试过程,它以脚本的形式记录下手工测试的一系列操作,在环境相同的情况下重放,检查其在相同的环境中有无异常的现象或与实际结果不符的地方。可以减少由于人为因素造成结果错误,同时也可以节省测试人员大量测试时间和精力来做别的事情。功能模块主要包括:GUI map、检查点

jiangjiayi的专栏 1570

winrunner使用小技巧

winrunner使用小技巧一、通配符 ![内容].* (空格) 如: !Form.* ,表示为“Form”+任何字符串 !.* Form,表示为任何字符串+“Form” 二、文件路径 // TSL 语言中,文件路径要用“//”表示 三、控件识别问题   有时录制脚本时发现有的控件识别不了(比如WEB页面中的标准控件识别不了), 可能由以下情况造成: 1. 启动WinRunner时没有加载相应

yuhongwei的专栏 1689

请列举你所了解的测试工具

WinRunner最主要的功能是自动重复执行某一固定的测试过程,它以脚本的形式记录下手工测试的一系列操作,在环境相同的情况下重放,检查其在相同的环境中有无异常的现象或与预期结果不符的地方。Testdirector是基于WEB的测试管理工具,它能够让你系统地控制整个测试过程,并创建整个测试工作流程的框架和基础,使整个测试管理过程更为简单和有组织,还能够帮助你维护一个测试工程数据库,并且能够覆盖你的应用程序功能性的各个方面。QTP是一个B/S系统的自动化功能测试的利器和软件程序测试工具。

esifhuuiwehwe的博客 257

第九章测试工具

(一)学习内容 一、测试工具的分类 1. 根据测试方法分为白盒测试工具和黑盒测试工具; 2. 根据测试的对象和目的分为单元测试工具、功能测试工具、负载测试工具、性能测试工具、测试管理工具; 1. 白盒测试工具 白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级; 根据测试工具原理的不同分为动态测试工具和静态测试工具; 静态测试工具:直接对代码进行分析,不运行代码,也不需要对代码编译生成可执行文件; 动态测试工具:采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运

qq_38085704的博客 6369

WinRunner使用经验介绍

WinRunner在项目中的作用可以用WinRunner为所测试应用程序的GUI,功能和回归测试创建自动化脚本。 WinRunner的测试过程主要包括如下6个阶段:1).    创建GUI Map文件:WinRunner可以通过它来识别被测试应用程序中的GUI对象。2).    创建测试脚本:通过录制,编程,或两者的组合创建。在录制测试脚本时,在你想检查被测试应用程序响应的地方插入验证

gddsky的小空间 2920

软件测试工具Winrunner使用的技巧

个人在使用过程中总结的一点小小经验和技巧,希望能够对大家有用! 一、通配符 ![内容].* (空格) 如: !Form.* ,表示为“Form”+任何字符串 !.* Form,表示为任何字符串+“Form” 二、文件路径 \\ TSL 语言中,文件路径要用“\\”表示 三、控件识别问题   有时录制脚本时发现有...

canway01的博客 885

winrunner的基本操作

(1),先在Winrunner里建一个脚本(这里以http://www.newtours.demoaut.com的订购飞机票为例)(2),点击Record开始录制,for (i=1; i {# Shell_TrayWnd set_window ("Shell_TrayWnd", 3); toolbar_button_press ("ToolbarWindow32_0_1", "启动 Int

leo的测试文章积攒地 600
上一篇: 自动化测试工具兼容性报告
下一篇: 另眼看自动化测试工具-浅谈自动化测试的好处,缺陷及相关弥补策略
imlogic
博客等级 码龄22年 162粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值