测试脚本
A. 测试中如何使用自动化脚本
从毕业到现在,经历了软件开发,
软件测试,
1)QTP工具。QTP是一个快速测试专业工具。它的优点是可以快速建立企业自动化框架,但不是一个全能的工具,因为利用QTP并不能帮助用户找出更多的 BUG,只能提高执行测试用例的效率。 QTP的价格也较贵。 QTP主要应用于较稳定的测试项目的回归测试,UI的变化不明显,功能较稳定的项目。它可以节省回归测试的成本,但相对手工测试来说,QTP对测试人员的要求较高,比如要掌握VB脚本,掌握函数调用等技术;另外,建立QTP框架前期需要投入较大的人力写测试用例,加上调试的时间,是一笔不小的开销,所以企业在选用QTP测试工具时一定要三思而后行。
2)Loadrunner是一个企业级性能测试工具,应用十分广泛。对于WEB应用,Loadrunner的优势十分明显。但与QTP一样,lr的 License十分昂贵,所以很多企业都使用破解版。并且真正掌握LR精髓的人员并不多,很多人都会使用这个工具,但能用这个工具找出系统瓶颈的人并不多,所以,会使用Loadrunner和会性能测试是两码事。懂脚本语言的性能测试人员当然最好。
3)python和Tcl/tk脚本语言。在我之前的经验中,我用到过PYTHON和TCL。他们都是脚本语言,不需要编译。两种语言的特点如下:Python开发java方面的http接口比较方便;tcl/tk开发C++方面的接口更容易一些。PYTHON写的程序可读性强,TCL写的程序的可读性不好。
4)在需要产生一些大批量数据时,如一个表需要插入100万条数据,然后这100万条数据属于100个不同的类别,如果是手工输入的话,估计10个人一个月都输不完,但如果利用脚本,如PB,VB或者Tcl/tk,可以通过产生批量sql脚本的方式,来产生SQL脚本,这样不到半小时就可以搞定全部的数据。看来脚本的威力不小!
5)另外,就是Linuxshell脚本了,我们通常说“事半功倍”,shell脚本的确可以帮助你实现这个目的。我们平时在LINUX部署一个应用会用到很多的命令如 Checkout,ps,vi,kill等等,如果能把这个操作流程写成一个SHELL脚本让机器自动执行,那该是省了多少事?另外,作为 UNIX/LINUX管理员,平时可以要监控较多的PC终端,他完全可以在UNIX/LINUX上定制各种任务(如备份,删除临时文件,检查磁盘空间等等),所以,掌握Shell脚本(如Sed,awk,grep等)对一个测试人员来讲是十分必要的!
6)另外一个就SQL脚本了,要能写存储过程(SP)和触发器(Trigger),还有游标(Cursor)的使用,掌握这些的话对于测试数据库方面的用例是相当有帮助的。SQL脚本对系统性能和功能都起着十分重要的作用。
作为一名有6年测试经验的工程师,我坚定地认为脚本测试技术是以后的发展方向,包括白盒测试,也是将来的一个发展方向,对于测试人员来讲,核心竞争力是能完整的测试开发人员的程序,尽可能找出更多的BUG。黑盒测试只能从系统的角度去完成功能测试,但作为软件本身,应该作更深层次的测试。
B. 如何使用python编写测试脚本
1)doctest
使用doctest是一种类似于命令行尝试的方式,用法很简单,如下
复制代码代码如下:
def f(n):
"""
>>> f(1)
1
>>> f(2)
2
"""
print(n)
if __name__ == '__main__':
import doctest
doctest.testmod()
应该来说是足够简单了,另外还有一种方式doctest.testfile(filename),就是把命令行的方式放在文件里进行测试。
2)unittest
unittest历史悠久,最早可以追溯到上世纪七八十年代了,C++,Java里也都有类似的实现,Python里的实现很简单。
unittest在python里主要的实现方式是TestCase,TestSuite。用法还是例子起步。
复制代码代码如下:
from widget import Widget
import unittest
# 执行测试的类
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget()
def tearDown(self):
self.widget.dispose()
self.widget = None
def testSize(self):
self.assertEqual(self.widget.getSize(), (40, 40))
def testResize(self):
self.widget.resize(100, 100)
self.assertEqual(self.widget.getSize(), (100, 100))
# 测试
if __name__ == "__main__":
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase("testSize"))
suite.addTest(WidgetTestCase("testResize"))
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)
简单的说,1>构造TestCase(测试用例),其中的setup和teardown负责预处理和善后工作。2>构造测试集,添加用例3>执行测试需要说明的是测试方法,在Python中有N多测试函数,主要的有:
TestCase.assert_(expr[, msg])
TestCase.failUnless(expr[, msg])
TestCase.assertTrue(expr[, msg])
TestCase.assertEqual(first, second[, msg])
TestCase.failUnlessEqual(first, second[, msg])
TestCase.assertNotEqual(first, second[, msg])
TestCase.failIfEqual(first, second[, msg])
TestCase.assertAlmostEqual(first, second[, places[, msg]])
TestCase.failUnlessAlmostEqual(first, second[, places[, msg]])
TestCase.assertNotAlmostEqual(first, second[, places[, msg]])
TestCase.failIfAlmostEqual(first, second[, places[, msg]])
TestCase.assertRaises(exception, callable, ...)
TestCase.failUnlessRaises(exception, callable, ...)
TestCase.failIf(expr[, msg])
TestCase.assertFalse(expr[, msg])
TestCase.fail([msg])
C. 测试新人如何写好软件测试脚本
1.会代码的话就直接写
2.不会代码的就看要求是需要写什么类型的脚本
3.新手的话我觉得好不好不重要,能够达到目的的脚本就可以了。比如我用python可能就几行代码,但是用到bat就可能会复杂一点,但有什么关系。达到目的就好了呀
ps.现在这么牛批了么,一上来就让写。难道都没有人带带的嘛
D. 请问什么是测试脚本
http://www.ianywhere.com/developer/proct_manuals/sqlanywhere/0902/zh/html/dbmlzh9/00000226.htm
你可以到这个地方去查看一下.
E. 测试用例、测试数据、测试脚本之间的关系
支持测试用例与业务组件之间的关系管理,通过测试业务组件和数据“搭建”测试用例, ...
测试出错的情况下执行错误处理脚本,保证出错后的测试用例脚本能够继续被执行。 ...
F. 测试脚本的工作
1.脚本语言的特点,通过下面tcl/tk与C++和java的比较就可见一斑。
2.C++,Tcl/Tk 和 Java 的性能比较高
3.C++
4.Tcl/Tk
5.Java
6.运行程序速度
7.快
8.与 C++ 可比
9.慢
10.调试难易程度
11.复杂 每次修改完代码需重新编译
12.简单 修改完代码可直接运行
13.比较简单 修改完代码需重新编译成 ByteCode, 而且编译速度很慢
14.程序代码复杂程度
15.复杂
16.简明
17.比较简单
18.系统资源占用情况
9.1200MB HD 32MB Memory
20.3MB HD 4MB Memory
21.20MB HD 4MB Memory
22.代码可维护性
有一定难度,需要有面向对象程序设计的概念 脚本解释器是脚本语言工作的核心,所有具体指令或是函数的执行都由它来完成,扩展项实现了与其它语言的接口,使脚本语言运行C/C++,java等函数成为可能;同时在用户具体应用中可以定义命令和函数,应用更加灵活;作为解释器它也提供了基本的内建指令或是函数,不同厂商、版本的解释器提供的内建命令(函数)可能不同。
G. 我做的是软件测试,我该学哪种脚本语言
那要看你打算像那个方面发展了。如果以做网站自动化测试的话建议你学习下LoadRunner测自动化测试脚本的编写方式,LoadRunner中的脚本语言中可以使用C 语言中比较标准的函数和数据类型,语法和C 语言相同。
当然,他也附加有自己的函数语言。
如果是发展成纯java项目测试的话建议学习下Rational Functional Tester的自动化脚本语言,是以java或。Net为主的语言。
H. 什么是测试脚本!它和测试用例有什么关系
测试脚本是一段代码不假。但是这段代码可能是为了执行某一条,或很多条测试用例而写的。
也有可能 ,本身就是一条用例。
用例本身并不局限在基于功能。
脚本和用例没有并列的可比性。
脚本可能是用例,也可能是执行用例用的功能。用例也可能是脚本。明白了么
I. 测试脚本的定义
测试脚本语言(test scripting language)是脚本语言的一种,准确地讲是脚本语言在测试领域地一个分支,是自动化软件测试设计的基础。要理解测试脚本语言就不能不对脚本语言进行一些了解。
脚本语言(scripting language) 就是在执行时以解释(interpreting) 为主的编程语言,比如常见的perl,python,php,tcl,guile,ruby以及UNIX系统的各种shell都是脚本语言,它的执行效率比不上编译后再执行的程序,如以C,C++, Java,Pascal等语言编写的程序。
脚本语言应用到测试领域就可以称之为测试脚本语言,以上提到的脚本语言都可以作为测试脚本语言来使用,特别是tcl语言更是被业界称为事实上的测试脚本语言标准。随着软件测试的发展,各种测试工具也相继推出,为了保护知识产权或者说是保护商业秘密,这些商业化的软件大多使用自己的测试脚本语言,比如MI的TSL语言等。
J. 测试脚本的分类
线性脚本:是录制手工执行的测试实例得到的脚本。这种脚本包括所有的击键、功能键、箭头、控制测试软件的控制键及输入数据的数字键。
结构化脚本:类似于结构化程序设计,结构化脚本中含有控制脚本设计的指令。这些指令或为控制结构或为调用结构。
共享脚本:脚本可能被多个测试事例使用。
数据驱动脚本技术:将测试输入存储在独立的文件中,而不是存储在脚本中。
关键字驱动脚本:较复杂的数据驱动技术的逻辑扩展。