QTP-MySql+对象库实例

首先QTP要连接MySql
先确保机器上有MySql的数据源 没有的话去网上下一个装上把。

我这里用的是Mysql 5.1的数据源
,装完后,在桌面新建一个TXT文档,然后修改后缀改为udl,就变成了数据链接这样子,打开它,你会发现《提供程序》内就没有Mysql这个名字的程序
,但是在windows的管理工具数据源内能找Mysql 5.1的名字也可以添加,后来找了好久才知道原来Mysql在数据链接内是叫 Miceosoft OLE
DB Provider for ODBC Drivers 这个名字。

现在找到了名字
接下来就是设置《连接》的属性,数据源名称可以随意填写,下面的用户名和密码就需要MySql的管理人员给权限。当都设置好了,点击测试连接,显示连接成功的话就是能正常启动了。

上面配置好了以后,我们用记事本的方式打开*.udl,里面有这些内容
我们只需要复制红线那部分,这部分为链接地址

好了 接下来就进入编写阶段了

实现功能

1:读取数据库 USER_ 表内的 SCREEN 和
SEREENNAME 这两列下含有"test_"字符串的数据,

2:循环写入一个登陆界面,实现正确登陆

3:验证点,登陆完毕后主界面会有一个对象内显示 Welcome
test01! ,用描述性编程找到该对象获取其中我所需要的属性值进行验证

Dim conn

Dim name
Dim sql

Dim suu

Dim inn ‘检查字段

SystemUtil.Run "http://192.168.0.233/web/guest/home"

‘这一段就是复制当时记事本里的那一段语句 这段语句有个问题就是 自己要手动往里添加用户密码噢 所以我再里面加了一个Password=1111

Mysql="Provider=MSDASQL.1;Persist Security Info=False;User
ID=root;Password=1111;Data Source=sqltest"

‘select screenName,screenName from user_ where screenName like
‘test__‘;

‘这段话表示说 搜索数据库内 USER_ 表内 screenName,screenName 这2个列里面所有包含 test
的数据
sql="select screenName,greeting from user_ where screenName like
‘test__‘;"
Set conn=CreateObject("ADODB.CONNECTION")
conn.Open
Mysql

If conn.State<>0 Then
    Reporter.ReportEvent
micPass,"连接成功","连接成功"
else
Reporter.ReportEvent
mimicFail,"连接失败","连接失败"
End If

Set res=CreateObject("ADODB.Recordset")
res.Open
sql,conn,1,1 ‘1,1表示只读;1,3表示插入数据;2,3表示修改数据
res.MoveFirst‘使游标指向第一个记录
sum=""

‘res.EOF表示游标到达最后一行
  While Not res.EOF  
  ‘读取整个表内的所有数据
‘    For
i=0 to
res.Fields.Count-1‘str.Fields.Count表示字段个数   
‘     sum=sum&
res(i) & " "
‘把整个记录显示出来   
‘   Next  

‘获取数据库内
screenName 列的每一行数据
sum=res("screenName")

‘截取字符串内
从左到右4位字符
suu=Left(sum,4)

If suu = "test" Then

‘检查字段变量
inn=res("greeting")
‘录制登陆过程
把账号密码做参数化
Browser("测试比对样品 - 登录").Page("测试比对样品 -
登录").WebEdit("_58_login").Set sum @@ hightlight id_;_Browser("测试比对样品 -
登录").Page("测试比对样品 - 登录").WebEdit(" 58 login")_;_script
infofile_;_ZIP::ssf1.xml_;_
Browser("测试比对样品 - 登录").Page("测试比对样品 -
登录").WebEdit("_58_password").set"1111" @@ hightlight id_;_Browser("测试比对样品 -
登录").Page("测试比对样品 - 登录").WebEdit(" 58 password")_;_script
infofile_;_ZIP::ssf2.xml_;_
Browser("测试比对样品 - 登录").Page("测试比对样品
- 登录").WebButton("登录").Click
‘这里是使用SPY抓取获取到对象属性值,对该对象2个属性进行描述性编程 对象库内不要放入被描述的对象
,然后使用
.GetROProperty方法获取所需要对象属性值 
‘这里抓取了2个对象进行描述是应为2个该对象使用1个对象进行描述时,界面上还有其他对象的属性是一样的,所以描述对象时
尽量抓取对象独有的属性,当一个属性描述找不到时,就再增加一个属性描述
nn=Browser("测试比对样品 - 稿件管理").Page("测试比对样品 -
稿件管理").WebElement("innertext:=Welcome "&sum&"!","html
tag:=SPAN").GetROProperty("innerhtml")
‘设置检查点
If nn=inn Then
print "nn="&nn&"   inn="&inn
    Reporter.ReportEvent
micPass,"检查点","PASS"
    else
    Reporter.ReportEvent
micFail,"检查点","Ng"
End If

Browser("测试比对样品 -
稿件管理").Page("测试比对样品 - 稿件管理").Link("text:=退出").Click
End If

‘Print
sum & vbCRLF‘打印所有查询的记录   VBCRLF
换行语句
res.MoveNext‘使游标进入下一个
Wend 

 @@ hightlight
id_;_Browser("测试比对样品 - 稿件管理").Page("测试比对样品 - 稿件管理").Link("退出")_;_script
infofile_;_ZIP::ssf6.xml_;_

报告显示结果

时间: 2024-10-12 08:15:40

QTP-MySql+对象库实例的相关文章

转换QTP对象库xx.tsr文件为xx.xml文件以便git跟踪

众所周知,Git仅能跟踪文本文件,而QTP所生成的对象库文件xx.tsr是一种二进制文件,不可以被git所跟踪.本文详细介绍了利用git的hooks特性,来将xx.tsr文件转换成xx.xml文件,以便跟踪对象库的版本历史. 首先,git的hooks特性是指在特定事件发生之前或者之后执行特定脚本代码的功能(从概念上类比,与监听事件.触发器等类似).特定事件既是指git执行的特定事件,如commit,push,recieve等,以下是常见的git事件: applypatch-msg pre-app

把QTP不识别的控件添加到对象库

1.把不识别的控件添加到对象库resources->object repositories->object->add object to local,选中需要选中的控件,确定. 2.在active screen中选中录制不了的控件,点击右键,有view/add object选项,弹出的object selection窗口中显示的控件是不是你刚才添加到对象库中的呢,如果是,那就继续,如果不是,重新操作一下. 3.如果会些vb程序,就在expert view中自己写代码手动添加,如果不会,按

MySQL数据库多实例主从同步

本文主要介绍单台服务器MySQL数据库多实例的主从同步,一般常规做主从复制主从服务器在不同的机器上,并且监听端口均为默认的3306端口.一.环境介绍 操作系统:CentOS 6.5 数据库版本:MySQL 5.5.32 主库主机名称:mysql-master(172.18.10.222:3306) 从库主机名称:mysql-slave(172.18.10.222:3307) 二.主从同步原理介绍  简单描述主从复制原理: 1.在Slave服务器命令行执行start slave,开启主从复制开关

amoeba针对MySQL单机多实例配置文件注释

MySQL单机多实例的读写分离可以通过第三方软件来实现,其中一个叫简单的读写分离软件就是今天所带给大家的amoeba软件. 本次使用的amoeba软件为amoeba-mysql-binary-2.1.0-RC5.tar.gz 本软件是基于JAVA环境运行的,所以需要JAVA环境支持,具体环境配置不做详解. 本文主要解释两个主配置文件. 1.dbServer.xml 这个文件配置的是父配置(用来给默认子配置补充配置项) 真实mysql服务器的端口,数据库名称,mysql用户及密码 主服务器,从服务

教你手工mysql拆库

互联网网站应用大多采用mysql作为DB存储,限于mysql单机性能的瓶颈,为了支撑更大容量和更大的访问量,dba一般通过建立分布式集群,让多个mysql共同提供服务.所谓的mysql分布式集群,实质就是将原有的数据拆成多份,放在多个mysql数据库上存储,应用通过中间层路由到对应的数据库分片,访问所需要数据,基本架构如图1所示.这里的关键点就是“拆”,如何拆库,根据业务场景,一般可以采取水平拆分和垂直拆分.所谓水平拆分是指,将一个大表按一定的规则分片,分布在多个mysql数据库中:垂直拆分则是

MySQL从库记录binlog日志出错一例

昨天晚上学习视频"L11-16-配置MySQL从库记录binlog及其生产应用场景w",开头部分就卡住了. 在数据库的配置文件/data/3307/my.cnf里,开启参数"log-bin = /data/3307/mysql-bin",并增加"log-slave-updates"参数之后,重启数据库服务. 测试创建1个新库"create database oldgirl02;"之后,即使过滤新生成的logbin日志文件还是没

MySQL增量备份与恢复实例【转】

小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的MySQL版本为5.5.40 for Linux (x86_64). 增量备份要确保打开了二进制日志,参考mysql的日志系统: mysql> show variables like '%log_bin%'; 首先对pak数据库做一个完整备份: $ mysqldump -h localhost -u

UI对象库

能够使用配置文件存储被测试页面上页面元素的定位方式和定位表达式,做到定位数据和程序的分离. 1.页面元素定位表达式配置文件,".ini"文件,可用text文本编辑保存后直接修改文件后缀 [sogou] searchBox=id>query searchButton=id>stb 2.ObjectMap工具类文件,供测试程序调用 #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sle

MySQL(mariadb)多实例应用与多实例主从复制

MySQL多实例 mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306.3307,3308),运行多个服务进程.这些 mysql 服务进程通过不同的 socket来监听不同的数据端口,进而互不干涉的提供各自的服务. 在同一台服务器上,mysql 多实例会去共用一套 mysql 应用程序,因此在部署 mysql的时候只需要部署一次 mysql程序即可,无需多次部署.但是,mysql多实例之间会各自使用不同的 my.cnf 配置文件.启动程序和数据文件.在提供服