QTP测试微信公众号九人三公架设脚本开发

2023-12-02 21:10

本文主要是介绍QTP测试微信公众号九人三公架设脚本开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QTP测试微信公众号九人三公架设论坛:aqiulian.com,更多有关QTP测试脚本有关的咨询Q:212303635。作为关键字视图的可替换脚本编辑视图,在专家视图中编写的测试代码能与关键字视图中的各项元素一一对应。关键字视图和专家视图使用的是同一套对象库,在专家视图中,输入测试对象的顶层对象的控件类型名,比如Page,然后输入"(",则QTP会自动列出对象库中匹配的测试对象,如果匹配的仅有一项,则会自动完成测试对象的输入,如下所示:

wKioL1MwIUqC1gvMAAFjmE1U2fo557.jpg

输入一个测试对象后,就可以访问其下的属性、方法,以及下级对象,完成测试对象的选择后,可输入".",选择针对该测试对象作出的操作,如下所示:

wKiom1MwIueCdywxAAGn8-plVSM335.jpg

在专家视图中,需要像编写VBScript代码一样编写注释语句,也可以写在语句后面,如下所示:

wKiom1MwJGaSEznJAAE994dXOLw691.jpg

注释写在前面和写在后面,在关键字视图的表现是不一样的。


2. Utility对象的使用

在QTP中,提供了大量的Utility对象,用于辅助测试人员编写测试脚本,减少测试脚本编写的难度。

PathFinder对象中的Locate方法用于返回QTP中指定的目录的全路径。可以通过菜单"Tools > Options"来打开界面,在"Search list"中,添加需要的目录,这些目录是QTP有于搜索文件的目录,可以是绝对路径或相对路径,如下所示:

wKioL1MwJf2D9b7EAAGzTxTxI_w640.jpg

设置好这些路径后,就可以使用PathFinder对象的Locate方法来查找某个文件所在的目录全路径,例如:

1
p = PathFinder.Locate( "filename.dll" )

XMLUtil对象用于读取XML文件,其LoadFile方法可从指定的文件中读入XML格式的文本,返回XMLData对象,例如:

1
2
Set doc = XMLUtil.CreateXML()
doc.LoadFile "Test.XML"

可用Validate方法来指定某个Schema文件,检查加载的XML文件是否满足Schema的格式要求,例如:

1
2
3
4
ans = doc.Validate( "D:\ObjectRepository.xsd" )
If ans Then
   MsgBox "匹配指定的Schema!"
End If

使用Extern对象,可以调用外部的DLL函数,可以在开发测试脚本时,利用Extern对象调用丰富的Windows API函数,从而编写更为强大和灵活的测试代码,例如:

1
2
3
Extern. Declare micHwnd, "FindWindow" , "user32.dll" ,
                "FindWindowA" , micString, micString
hwnd = Extern.FindWindow( "Notepad" , vbNullString)

SystemUtil对象可用于在脚本运行过程中控制应用程序和进程,例如:

1
2
3
SystemUtil.BlockInput
Browser( "Home" ).Page( "Index" ).WebEdit( "userName" ).set "John"
SystemUtil.UnblockInput

Report对象可用于发送信息到测试结果文件,例如:

1
2
Report.ReportEvent micDone, "Start Action1 ..." , "运行Action1"
Report.ReportEvent micDone, "End Action1 ..." , "Action1结束"

其中micDone是事件状态的一种 ,事件状态可以是:micpass(标识测试步骤为通过),micFail(标识测试步骤为不通过),micDone(标识测试步骤为完成),micWarning(标识测试步骤包含警告信息)。

Environment对象可以读取和设置环境变量,环境变量包括Built-In和User-defined两种类型,Built-In是内建的环境变量,只能读取,User-defined是用户自定义的环境变量,可以读取和设置,例如:

1
2
OS = Environment.Value( "OS" )
OSVersion = Environment.Value( "OSVersion" )

可以在QTP中通过选择菜单"File > Setting",在"Environment"页中查看所有可读取的环境变量,如下所示:

wKioL1MwLJOwc-GNAAIFvgaqebw457.jpg


3. QTP内置函数

在QTP中,提供了一些内置函数,用于辅助测试人员编写测试脚本。

Print函数可用于在测试过程中显示输出信息,在测试脚本的运行过程中,Print Log窗口将保持打开的状态,例如:

1
Print "测试输出"

另外一种方式是MsgBox,例如:

1
MsgBox "测试输出"

在测试脚本中,有时需要模拟用户等待的过程,这时就可以使用Wait函数。Wait函数用于暂停测试脚本执行一段指定的时间,例如:

1
Wait 10

ExecuteFile函数可用于执行指定的VBScript脚本文件,并且一旦运行起来,脚本文件中的函数都可以被直接调用,例如:

1
ExecuteFile "MyTest.vbs"


4. 虚拟对象管理

如果程序中包含那些行为类似标准对象的对象,但是不被QTP所识别,则可以把这些对象定义为虚拟对象,并且映射到某类标准对象,比如button、check box等。

选择菜单"Tools > Virtual Objects > New Virtual Object",在界面中定义虚拟对象,如下所示:

wKiom1MxhHnxnEFNAAFtJuuWWXA176.jpg

单击“下一步”按钮,在界面中选择希望把对象虚拟成什么类型的标准对象,再单击“下一步”按钮,单击"Mark Object"按钮,在页面上选择想要虚拟化的对象的区域,继续单击“下一步”,如下所示:

wKiom1MxhVfw1AtIAAFARO5iCyg159.jpg

在这个界面中,选择虚拟对象的父对象,单击“下一步”按钮,在"Name"中输入虚拟对象的名称,在"Collection name"中输入集合的名字,然后单击“完成”按钮,完成虚拟对象的创建,如下所示:

wKioL1Mxhhnw_O-zAAE42uYN6mA619.jpg

创建虚拟对象后,可通过"Tools > Virtual Objects > Virtual Object Manager",看到刚才新建的虚拟对象,如下所示:

wKiom1MxhtnihMtdAADYKXlvlzQ501.jpg

创建虚拟对象后,在录制脚本时,QTP就会以虚拟对象对应的控件形式来录制测试对象。


5. Recovery Scenarios

在脚本运行过程中,可能会出现一些非预期的事件、错误、程序崩溃等情况,为了处理这种错误,QTP创建Recovery Scenarios,并关联到某个测试脚本,可以把这些定义的Recovery Scenarios称为恢复场景。

选择菜单"Resources > Recovery Scenario Manager",如下所示:

wKioL1Myuv7iH39CAADRytRa9dk226.jpg

在界面中单击列表中的"New Scenario"按钮,单击“下一步”按钮,如下所示:

wKioL1Myu2OAzS9lAAG36Aq3zTU453.jpg

在这个界面中,需要选择一个触发事件的条件,这些条件用于触发Recovery Scenario执行相应操作,可以有4种类型:

1) Pop-up window: 在测试运行过程中出现某个窗口。

2) Object state: 在测试运行过程中某个对象的属性匹配某个特定的值。

3) Test run error: 某个测试步骤在运行过程中出现错误。

4) Application crash: 应用程序出现崩溃现象。

选择某个触发器后,单击“下一步”按钮,在界面中设置对应触发类型的值,单击“下一步”,如下所示:

wKioL1MyvV2A15OKAAGeSljFP9c128.jpg

在这个界面提示需要定义Recovery Scenario的相应操作,单击“下一步”,如下所示:

wKioL1Myva6SzB7dAAGS10OhjzY543.jpg

在这个界面中可以选择Recovery Scenario操作的类型,包括4种类型:

1) Keyboard or mouse operation: 鼠标或键盘操作。

2) Close application process: 关闭应用程序的进程。

3) Function call: 调用某个函数。

4) Restart Microsoft Windows: 重新启动Windows。

选择某种类型的操作,单击“下一步”按钮,在界面中设置对应操作类型的值,单击“下一步”,即可看到操作已经被成功添加到列表中,如下所示:

wKiom1MywB2giaU-AAGDUsnFbIA835.jpg

在这个界面中直接单击“下一步”按钮,可添加另外一个操作,把"Add another recovery operation"设置为取消勾选状态,再单击“下一步”按钮,则可完成操作的定义,如下所示:

wKiom1MywIaCkyHAAAGHSjKHSng496.jpg

在这个界面中,需要指定Recovery Scenario的某个操作完成后,如何执行后续的测试脚本,可以选择6种测试脚本的运行方式:

1) Repeat current step and continue: 重复当前测试步骤并继续执行。

2) Proceed to next step: 执行下一测试步骤。

3) Proceed to next action or component iteration: 执行下一Action或组件的迭代。

4) Proceed to next test iteration: 执行下一个测试迭代。

5) Restart current test run: 重新启动当前测试脚本。

6) stop the test run: 停止测试脚本的运行。

选择某种操作类型后,单击“下一步”按钮,在界面中输入Recovery Scenario的名称和描述信息后,单击“下一步”按钮,再单击“完成”,如下所示:

wKioL1MywgbAyobaAADjS8VypZ4820.jpg

单击"Save"按钮,可把Recovery Scenario保存到文件中。定义好Recovery Scenario后,还需要让其与测试脚本关联。打开某个测试脚本,选择菜单"File > Setting",并切换到"Recovery"页面,如下所示:

wKioL1MywxHQarJuAAFOli7igxU639.jpg

单击"Add"按钮,在界面中单击"Recovery file"下拉框右边的"..."按钮,选择前面定义并保存的Recovery Scenario文件,单击"Add Scenario"按钮,返回"Recovery"页,如下所示:

wKiom1MyxCuQAb0cAAF0mYaXh-s354.jpg在"Activate recovery Scenario"的下拉框中,可选择何时执行该Recovery Scenario文件所定义的恢复操作。

这篇关于QTP测试微信公众号九人三公架设脚本开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/446845

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis