自动化测试(五):自动化测试框架

框架(可复用的函数、方法)类型:

① 数据驱动(用测试数据去驱动脚本的运行,测试脚本和数据的分离???)

② 关键字驱动(object.action(param),抽象程度更高,业务逻辑、脚本、数据的分离)

结构:Automation

① AUT:配置文件,xml文件

② Config(Object Repository):对象,tsr文件(flighr.tsr)

③ TestData:测试数据,即测试用例,txt文件(flight_testcase.txt)

④ Script:测试脚本,读取Test Data,传给Execute Testcase,传给业务处理,得到结果,传给Report,vbs文件(testdriven_flight.vbs,flight文件夹)

⑤ Report

⑥ Log

⑦ Exception

⑧ Controller文件调用(runQTP.vbs,runtime.bat)

注:业务处理函数在QTP里面写,再复制

flight_testcase.txt


|mercury|Please enter agent name

mer|mercury|Agent name must be at least 4 characters long

|mercury|Please enter passwoed

mercury|mercury|null

testdriven_flight.vbs


Const Forreading = 1

Const ForWriting = 2

Const ForAppending= 8

’文件调用

Controller "C:\Automation_Flight\Config\login_flight.tsr","D:\Software\QTP10\samples\flight\app\flight4a.exe","C:\Automation_Flight\TestData\flight_testcase.txt"

’文件调用函数

Function Controller(BvVal tsrPath, ByVal appPath, ByVal datapath)

RepositorysConnection.Add tsrPath

Systemutil.Run appPath

ExecuteTestCase datapath

Window(“Flight Reservation”).close

End Function

’执行用例、写入测试报告函数

Function ExecuteTestCase(ByVal filepath)

Dim fso, fil, txt, arr, test_result, result_record

Set fso = CreateObject("Scripting.FileSystemObject")

Set fil = fso.openTextFile(filepath, ForReading)

Do while Not fil.AtEndOfStream

txt = Trim(fil.ReadLine)

arr = split(txt, "|")

test_result = Login(arr(0), arr(1), arr(2))

result_record = result_record & "username: " & arr(0) & ", password" & arr(1) & ", testresult ---->" & test_result & vbCrLf

Loop

WriteTestReport "C:\Automation\Report\testreport.txt", result_record

fil.close

set fil = nothing

set fso = nothing

End Function

’报告函数

Function WriteTestReport(ByVal filepath, ByVal str)

Dim fso, fil

Set fso = CreateObject("Scripting.FileSystemObject")

Set fil = fso.openTextFile(filepath, ForWriting, True)

fil.Write str

fil.close

set fil = nothing

set fso = nothing

end Function

’业务逻辑流程,业务处理函数在QTP里面写,再复制

Function Login(ByVal un, ByVal pw, ByVal errmsg)

dialog("Login").WinEdit("Agent Name: ").Set un

dialog("Login").WinEdit("Password:").Set pw

dialog("Login").Winbutton("OK").Click

If dialog("Login").Dialog("Flight Reservations").Exist Then

actuan_result = dialog("Login").Dialog("Flight Reservations").Static("errmsg").GetROProperty("text")

If action_result = errmsg Then

Login = "pass"

else

Login = "Fail"

End If

dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click

else

If window("Flight Reservations").exist and errmsg = "null" Then

Login = "Fail"

End If

End If

End Function

在QTP中输入以下内容,保存在script下面的flight文件夹下


executeFile "C:\Automation\Script\testdriven_flight.vbs"

QTP自动化,AOM

runQTP.vbs


Dim qtpapp

Set qtpapp = CreateObject("QuickTest.Application")

qtpapp.Launch

qtpapp.visiable = True

qtpapp.open "C:\Automation\Script\flight"

qtpapp.Test.Run, True

qtpapp.Quit

set qtpapp = nothing

runtime.bat 批处理文件


at 11:54 /interactive cscript C:\Automation\Controller\runQTP

Exercise1windows计算器的简单自动化测试框架练习

结构:Automation_calc

① Config:windows计算器的对象文件tsr

② Controller:runQTP.vbs

③ Report:生成报告

④ Script:testdriven_clac.vbs  calc文件夹

⑤ TestData:testcase.xls

runQTP.vbs


Dim qtpapp

Set qtpapp = CreateObject("QuickTest.Application")

qtpapp.Launch

qtpapp.visible = True

qtpapp.open "C:\Automation_calc\Script\calc"

qtpapp.Test.Run, True

qtpapp.Quit

set qtpapp = nothing

testdriven_clac.vbs


Controller "C:\Automation_calc\Config\calc.tsr","C:\WINDOWS\system32\calc.exe","C:\Automation_calc\TestData\testcase.xls"

‘文件调用函数

Function Controller(ByVal tsrpath,ByVal apppath,ByVal datapath)

RepositoriesCollection.Add tsrpath

SystemUtil.Run apppath

ExecuteTestCase datapath

Window("计算器").Close

End Function

‘执行用例函数

Function ExecuteTestCase(ByVal filepath)

dim xlapp, xlworkbook, xlsheet

dim irowcount, iloop, num1,op,num2,expect_result,test_result, result_record

set xlapp = createobject("excel.application")

‘xlapp.visible = true

set xlworkbook = xlapp.workbooks.open(filepath)

set xlsheet = xlworkbook.sheets("calc")

irowcount = xlsheet.usedrange.rows.count

for iloop = 2 to irowcount

num1 = xlsheet.cells(iloop, 1)

op = xlsheet.cells(iloop, 2)

num2 = xlsheet.cells(iloop, 3)

expect_result = xlsheet.cells(iloop, 4)

test_result = Calculation(num1,op,num2,expect_result)

result_record = result_record & num1 & op & num2 & "=" & expect_result & ",testresult---->" & test_result & vbcrlf

next

WriteTestReport "C:\Automation_calc\Report\testreport.txt", result_record

‘        xlworkbook.save

xlworkbook.close

xlapp.quit

set xlsheet = nothing

set xlworkbook = nothing

set xlapp = nothing

End function

‘业务逻辑函数

Function Calculation(ByVal num1, ByVal op, ByVal num2, expect_result)

Dim actual , expect

window("计算器").WinEdit("Edit").Type(num1)

window("计算器").WinButton(op).Click

window("计算器").WinEdit("Edit").Type(num2)

window("计算器").WinButton("=").Click

actual_result = window("计算器").WinEdit("Edit").GetROProperty("text")

actual = trim(actual_result)

arr = split(actual,  ".")

If arr(0) = trim(expect_result) Then

Calculation = "Pass"

else

Calculation = "Fail"

End If

End Function

‘报告函数

Function WriteTestReport(ByVal filepath, ByVal str)

Dim fso, fil

Set fso = CreateObject("Scripting.FileSystemObject")

Set fil = fso.openTextFile(filepath, 2, True)

fil.Write str

fil.close

set fil = nothing

set fso = nothing

end Function

QTP输入以下语句,保存到C:\ Automation_calc\Script\calc文件夹下


executeFile "C:\Automation_calc\Script\ testdriven_clac.vbs"

testcase.xls


num1


op


num2


expect_result


20


*


3


60


35


-


5


30


40


+


21


61


55


/


11


5

时间: 2024-10-07 00:12:36

自动化测试(五):自动化测试框架的相关文章

c#_自动化测试 (五) 读写64位操作系统的注册表

非Web程序(桌面程序)的设置一般都存在注册表中. 给这些程序做自动化测试时, 需要经常要跟注册表打交道. 通过修改注册表来修改程序的设置. 本章介绍如何利用C#程序如何操作注册表, 特别是如何操作64位操作系统的注册表. 阅读目录 自动化测试经常需要修改注册表 Windows注册表简介 C#修改注册表 32位机器和64位机器注册表的区别 C#程序访问64位操作系统的注册表 自动化测试经常需要修改注册表 很多系统的设置(比如:IE的设置)都是存在注册表中. 桌面应用程序的设置也是存在注册表中.

nightwatchjs 基于nodejs&& webdriver 协议的自动化测试&&持续集成框架

nightwatchjs 是基于nodejs&& webdriver 协议的自动化测试&&持续集成框架 参考架构 参考资料 http://nightwatchjs.org/gettingstarted/#browser-drivers-setup 原文地址:https://www.cnblogs.com/rongfengliang/p/10541106.html

Appium 自动化测试(3)--Appium框架与流程介绍

Appium介绍 Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的.可用于IOS和Android以及firefox的操作系统.原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏览器的应用.混合应用是指一种包裹webview的应用,原生应用于网页内容交互性的应用.重要的是Appium是跨平台的,何为跨平台,意思就是可以针对不同的平台用一套api来编写测试用例.

python接口自动化测试(五)-其它(认证&代理&超时配置)

有了前面几节的介绍,基本的接口测试是可以满足了.本节一些其它的高级技巧: 一.认证 1.基本认证: # -*- coding:utf-8 -*- import requests url = "http://httpbin.org/basic-auth/user/passwd" r1 = requests.get(url) print "未提供用户名密码:" + str(r1.status_code) #Basic Authentication r2 = reques

Selenium自动化测试-unittest单元测试框架使用

一.什么是unittest 这里我们将要用的unittest是python的单元测试框架,它的官网是 https://docs.python.org/2/library/unittest.html,在这里我们可以得到全面的信息. 当我们写的用例越来越多时,我们就需要考虑用例编写的规范与组织,以便于后期的维护,而unittest正是这样一款工具.我们这里用一个示例来展示用unittest脚本是什么样子的 1 # -*- coding: utf-8 -*- 2 from selenium impor

接口自动化测试:Thrift框架RPC协议客户端开发

import java.lang.Thread.State;import java.util.Iterator;import java.util.List; import org.apache.thrift.TException;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TFrame

自动化测试-WebService测试框架

org.apache.commons.csv.CSVRecord;org.apache.commons.httpclient.Header;org.apache.commons.lang3.ArrayUtils;org.apache.http.client.methods.CloseableHttpResponse;org.apache.http.client.methods.HttpGet;org.apache.http.client.methods.HttpPost;org.apache.h

python接口自动化测试五:爬虫

安装:beautifulsoup4 from bs4 import BeautifulSoup yoyo = open('yoyo.html', 'r')   # 以读的方式打开"yoyo.html"文件 # print(yoyo.read())      # 此方法打开的是一个字符串,内容没有层级结构 # yoyo.close() soup = BeautifulSoup(yoyo, 'html.parser')   # 此时打印出来的效果与.read的一致 # print(soup

虫师自动化测试robot Framework 框架的学习

1.python关键字的定义 #coding=utf-8 def add(a,b): return a+b if __name__ == "__main__": c = add(4,5) IDE里面编辑脚本如下: 输出: 错误使用: 直接输入数字4和5,会怎么样呢 结果如下: 输出结果并不是相加,而是两个数字拼接. 这是robot里面,会默认把4和5当作字符来输入.改成整形就可以了. 注: (1)引入py文件,可以在setting中导入,也可在脚本最开始用import library导

自动化测试由浅入深--自动化测试辅助工具firebug以及xpath,Chrome浏览器Xpath获取。

头几天讲了一些原理性的东西,本章进入实战.想学好自动化,还是得懂一些知识领域.例如,HTML,XML,CSS,JavaScript,Ajax,JAVA\Python\C#等语言中的一种,数据库知识,TestNg,Ant,MAven,Jenkins等.这些东西多多少少都要懂一些.笔者在编程语言方面用的是Java.有了这些东西,还需要一些辅助工具,本章就介绍辅助工具. 1.浏览器安装,我这里使用的是Firefox浏览器,版本使用的46.0,大家可以去火狐官网去下载,在此不多做赘述. 2.安装fire