【测试求职】自动化测试相关

数据驱动与关键字驱动的区别。写出一种你熟悉的测试框架,解析它架构。

【数据驱动】通过用数据来控制测试的业务流,即在测试中用不同的数据来导向不同的测试结果。

四种途径来达到数据驱动

1.datatable

QTP本身程序就给我们提供了这么一个数据表,我们可以把测试数据或测试用例填入这个数据表中.

如:设计用例

username  passwd

case1  mercury mercury
case2 xxxxxxx xxxxxx

录制脚本

For i=1 to Datatable.GetRowCount
Dialog("Login").WinEdit("Agent Name:").Set DataTable("username", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("passwd", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
datatable.GlobalSheet.SetNextRow
Next

本例是验证一个登录系统,通过DataTable不同的用例设计,驱动起这段脚本,达到测试的效果.当然上面的例子中还少一个很重要的步骤,那就是结果比较.如果不能进行结果比较的自动化测试不能够称为自动化测试.

当然我们这里主要讲的是数据驱动,所以不在对上面的例子进行补充.

2.文本文件

我们可以把文本文件当成数据文件,通过对文本文件的读写操作,来实现数据驱动

例:文本文件内的内容

mercury,mercuy

读文件的代码

Function writeorderno(orderno)
Dim fso, myfile,username,passwd
Set fso=CreateObject("scrīpting.FileSystemObject")
Set myfile=fso.openTextFile("C:  esting.txt",1,false)
tmp=split(myfile.readline,",")
username=tmp(0)
passwd=tmp(1)
myfile.close
End Function

写文本文件的代码

Function writeorderno(orderno)
Dim fso, myfile
Set fso=CreateObject("scrīpting.FileSystemObject")
Set myfile=fso.openTextFile("C:
esult1.txt",8,false)
myfile.writeline orderno
myfile.close
End Function

3.EXCEL文件

我们可以把EXCEL文件当成数据文件,通过对EXCEL文件的读写操作,来实现数据驱动

可以把EXCEL文件当作对象的方式来完成写的操作

Dim Excel,ExcelSheet
Set Excel=CreateObject("Excel.Application")
Set ExcelSheet=CreateObject("Excel.Sheet")
ExcelSheet.Application.visible=true
ExcelSheet.ActiveSheet.Cells(1,1).value=1
ExcelSheet.ActiveSheet.Cells(1,2).value=2
ExcelSheet.ActiveSheet.Cells(1,3).value=3
Excel.Save "C:  est.xls"
Set ExcelSheet=Nothing

用ADO的方式连接EXCEL文件来做读的操作

Dim conn,input,filename
filename="D:公基本情况(tb_gsgk)-标准格式.xls" ‘
Set conn= createobject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False;Data Source="&filename&";Extended Properties=‘Excel 8.0;hdr=yes‘"
Set input= createobject("ADODB.Recordset")
input.Open "select * from [公基本情况-标准格式$] " ,conn,2,2
input.close
Set input=nothing

4.数据库

可以利用设计数据表,把测试数据和测试用例放在数据表里,用ADO或者其他任何可以访问连接数据库的方式连接数据库,来实现数据驱动

Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activec ‘连接数据库数据源,需要修改
Cmd.CommandType = 1
sql="selec t * from 表 where name=username"
Cmd.CommandText = sql
Set res = Cmd.Execute()
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing

以上四种方法都可以帮助我们实现数据驱动,应该说数据驱动在自动化测试中运用的比较的广泛,才有必要拿出来探讨一下.

利用SQL connection访问

Dim conn
set conn=Createobject("ADODB.Connection")
Dim Srvname
Srvname="DSN=Dblis50;UID=sa; PWD=;APP=QuickTest Professional;WSID=ADMIN;DATABASE=Dblis50"    ‘连接数据库数据源,需要修改
conn.connectionstring = Srvname
conn.Open
Dim Rec
Set Rec = CreateObject("ADODB.Recordset") 
Dim SQL
SQL="select top 1 *  from Lis_List" 
Rec.open SQL ,conn
Dim Username
Username=Rec.fields("PatName") 
Msgbox Username

利用SQL connection访问
Dim conn,res,cmd,sql,strconn
set conn=Createobject("adodb.connection")
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
strconn="DSN=Dblis50;UID=sa; PWD=;APP=QuickTest Professional;WSID=ADMIN;DATABASE=Dblis50"   ‘连接数据库数据源,需要修改
conn.connectionstring = strconn
conn.Open
Cmd.Activeconnection= conn
Cmd.CommandType = 1
sql="select top 2 * from Lis_List"
Cmd.CommandText = sql
Set res = Cmd.Execute()
Dim Username
Username=res.fields("PatName") 
Msgbox Username
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing

【关键字驱动】通过关键字来控制测试的业务流,即在测试中用不同的关键字来导向不同的测试结果。

关键字驱动技术在QTP火起来之后才被大家开始关注,关键字驱动测试技术是数据驱动测试的一种改进类型,主要关键字包括三类:被操作对象(控件)、操作(事件)和值,用面向对象形式可将其表现为控件.操作(值),将测试逻辑按照这些关键字进行分解,形成数据文件,用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化。拿具体步骤解释关键字驱动:

1.建立对象库:

将所有对象(控件)属性及方法进行封装

2.编制脚本,使用封装好了的控件及其对应的方法,给所进行的操作赋值

关键字驱动测试表示没有必要真正进行录制、回放,没有必要等软件非常稳定时再开展自动化测试,而且只要测试人员对软件业务足够了解,即可直接介入

最初用QTP就是简单的录制,然后修改脚本,缺点如下:

1. 应用软件必须具备一定的稳定性,并且在整个业务流程上都必须完整的实现了,否则顺序录制整能实现?

2. 自动化脚本的维护性成本非常的高

3. 自动化脚本的可重用性比较差

随之出现了关键字驱动的概念,一切都以对象为出发点,这有点像编程语言中从过程化向面向对象转化,在QTP中的具体实现方法是:

1. 在单个程序界面上将测试所涉及到的对象手工添加到对象库中

2. 在专家视图中基于对象库中的对象编写自动化测试脚本

以上这样做的明显的优点在于:

1. 脚本的可控性非常的强,模块化组织也比较好

2. 可以在开发完全实现所有的业务流程功能前就建立测试脚本,占据了比较大的主动性,为时间上的安排提供了更大的空间,一个词概括:“测试先行”

摘自:http://bbs.51testing.com/viewthread.php?tid=113729&extra=&highlight=%CA%FD%BE%DD%C7%FD%B6%AF&page=1

时间: 2024-10-24 10:32:57

【测试求职】自动化测试相关的相关文章

Deep Learning framework --- MexNet 安装,测试,以及相关问题总结

Deep Learning framework --- MexNet 安装,测试,以及相关问题总结  一.安装:   参考博文:http://www.open-open.com/lib/view/open1448030000650.html  Note: gcc g++ 需要 4.8 版本. 二.

中国计算机考试区别及求职的相关思考

全国计算机技术与软件专业技术资格(水平)考试或称"软件考试",简称"软考". 全国计算机等级考试或称"等级考试",简称"等考". 经常听到有学生询问:软考难不难?等考好不好通过?合格率是多少等等之类的问题.还有的学生干脆在网上发帖子"我到底该不该考软考"?也有回帖的说:等考.软考都差不多,那些辅导教材告诉你哪里是重点,哪里要背,在工作中没多大用.这些都表现出考生对学业负担之外的学习任务的关注和困惑,还有误解

如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试

表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受.能够充分证明这点的是主流 Web 2.0 服务提供商在接口设计中对 REST 的普遍采用 - 包括雅虎.谷歌以及脸谱 - 出于简单易用.以面向资源的模型发布自己的服务的偏好他们都已经抛弃了 SOAP 和基于 WSDL 的接口.在你必须要对你的 RESTFul web service 进行测试的时候,你可能会有这两个选择: 使用 URL 对你的 Web

TestNG 搭建测试框架 自动化测试

框架层级及基本组件:    参考:https://www.cnblogs.com/jier888/p/8998724.html Java作为开发语言 Maven管理项目及Jar包 Testng作为测试框架,管理测试用例集,生成测试报告 Selenium为测试工具 Testng被选为测试框架的优点 灵活的测试配置 测试用例可以更容易地进行分组 可以使用TestNG实现测试并行 支持数据驱动测试 内置的报告 注释可以帮助我们来组织使测试更容易 8.1 介绍框架层级及基本组件 框架层级及基本组件: T

自动化测试相关知识

本博客内容来源于: Leo Zhang——天道酬勤 RobotFramework + HTTP接口自动化实现 一.          什么是自动化测试? 1.      定义 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,也可以说是软件测试的一种技术手段. 2.      常见工具 Appium: AppUI自动化测试,一个移动端自动化测试开源工具. Selenium: WebUI自动化测试 ,一个用于Web应用程序测试的工具. QTP : WebUI自动化测试,提供符合所有主要应

启用WCF测试客户端的相关技巧

在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开.第二种方法是在“Visual Studio命令提示(Visual Studio Command Prompt)”中输入“WcfTestClient”命令,如图1所示: 图1 Visual Studio不同的项目模板,提供了不同的WCF测试客户端启动方法.下面这张表格是Visual Studio 2010

android开发之Monkey测试_自动化测试_看看你的应用够不够健壮

上篇提到让应用自动抓取Crash日志提交到服务器,如果发布之前没有经过严格测试(个人练手做的一些小应用),会发现有很多异常都是显而易见的错误,只是没有严格测试忽略了而已,其实android自带了一个自动化测试工具,Monkey,可以用来简单测试一下程序的健壮性如何. monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就

006-请说一下手动测试与自动化测试的优缺点

手工测试缺点: 1.重复的手工回归测试,代价昂贵.容易出错. 2.依赖于软件测试人员的能力. 手工测试优点: 1.测试人员具有经验和对错误的猜测能力. 2.测试人员具有审美能力和心理体验. 3.测试人员具有是非判断和逻辑推理能力. 自动化测试的优点: 1.对程序的回归测试更方便.这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的.由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间. 2.可

Linux测试环境部署相关命令和步骤

一.手动部署测试环境: 1.登录172.XX.XX.XX 服务器(拉取最新代码) 2.然后输入 cd  /XXX/XXX/XXXX    敲回车键,进入对应模块 3.然后输入 svn up 或 svn upadte 敲回车键 4.然后输入ll或ls 敲回车键 5.然后进入对应XXX模块和XXX模块路径下面有对应的子目录(cd xxx模块) 6.然后输入ll或ls 敲回车键 7.例如 我们要部署 A, 进入 littlec-xxx/littlec-A cd littlec-xxx/littlec-