工具测试范文
工具测试范文(精选11篇)
工具测试 第1篇
[7] 房玉东, 朱小勇, 刘江虹, 细水雾灭火技术在电气环境的研究与进展[J]. 中国工程科学, 2006, 8 (7) : 8-17.
The application of water mist
extinguishing system in library
ZHAO Li-zeng1, QIAN Fang2
全面了解网络测试工具 第2篇
一、物理线缆测试仪
物理线缆测试仪一般都是指的现场测试仪。测试仪能否向我们提供有助于找到布线故障的诊断能力,以及是否能在最短的时间内纠正布线错误、排除故障等是选购测试仪的首要问题,此外良好的抗恶劣环境的能力也不应忽视。下面我们来看看这方面的产品。
图:FLUKE(福禄克)多功能电缆测试仪
产品特性:
这是福禄克公司推出的一款集多种测试功能于一身的网络测试仪器,产品全称为“MicroScanner Pro 数字式超5类电缆分析仪”。它专为防止和解决电缆安装问题而设计,可以检测电缆的通断、电缆的连接线序、电缆故障的位置等方面,其显著的特色就是将一系列测试结果直观的反映在显示屏上。该产品是同类型测试仪中唯一使用TDR技术的测试仪,使用它可以得到精确的长度测量结果,下图所显示的即是每对线的长度并告知电缆是否连接在工作的HUB上。
其附件包括一个MicroScanner Pro 便携包、办公室/房间 ID 套件、同轴线适配器、线序适配器和裸线适配器等。总之其不俗的功能值得相关人员选购。
二、网络测试仪
网络测试仪将网络管理、故障诊断和网络安装调试等众多功能集中在一个仪器里,它可以通过网桥、路由器容易地观察整个网络的健康状况,甚至可以诊断出远端网络的问题。测试仪的高级SNMP能力还可以连续获取并不断更新故障网络的信息。总的说来,网络测试仪可以帮助网络管理人员在较短的时间内对网络的运行情况,以及故障点做出判断。下面我们来看看这方面的产品。
图:安捷伦J6800A 网络分析仪
安捷伦J6800A 网络分析仪
产品特色:
该款产品主要可用于安装部属、维护与优化当前数据网络的先进工具。适用于电信运营商的现场安装与维护、企业网络的网络管理与设备制造商研发部门的各类工程技术人员。它既支持集中式的网络故障诊断,又支持分布式网络状况监测,涵盖局域网、广域网、ATM、IP电话、移动(包括3G)、NGN等各类应用,
此外它可以实现集中式故障定位与分布式监测分析功能。集中式测试具备双端口测试功能,实现LAN-LAN,LAN-WAN,LAN-ATM多种组合测试;分布式测试能够同时测量网络中多个测试点的协议与网络性能状况,采集网络数据信息,排查间隙性与深层网络问题,全方位管理与监测网络。
总的说来,这款产品可以分析网络健康状况,预测网络的长期运行趋势和问题。以图形化的界面,对网络利用率、协议分布等参数进行分析和统计,并提供详细的在线帮助与解决故障的可行方法,强大的测试功能勿须置疑的。
三、协议分析仪
协议分析仪就是能够捕获网络报文的设备。协议分析仪的正当用处在于扑捉分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用协议分析仪来做出精确的问题判断。它在功能和设计方面有很多不同。有些只能分析一种协议,而另一些能够分析几百种协议。
协议分析仪通常是软硬件的结合,通常使用专用硬件或设置为专用方式的网卡实施对网络中的数据扑捉。捕获在网络中传输的数据信息方法就称为sniffing(嗅探)。OK,了解了工作原理,同样来看看相关的产品。
图:FLUKE(福禄克)集成式协议分析仪
产品特色:
这是福禄克公司的一款名为“OptiView”的集成式协议分析仪,它将用户所需的所有网络监测和故障诊断功能集成在一个电池供电的手持式工具中。配件组成为一个高性能协议分析仪、一个快速电缆测试仪和一个RMON2探头等,用户可以迅速通过这些配件来透视整个网络。该分析仪共有三种型号,分别是标准型、增强型和千兆型,功能也不尽相同。
此处介绍的这款产品具有全面的七层测试分析能力,可以自动IP配置、自动网络测试,能对交换环境网络设备进行主动搜寻,并提供对以太网的全面支持。此外也可支持1000Base-T/SX/LX、SNMP设备分析及RMONⅡ流量分析、数据包捕获和解码、网络数据吞吐能力测试、在线电缆测试、远程遥控测试、详尽的网络测试报告生成等方面。
后记:
这些主板测试工具你知道吗? 第3篇
专业DEBUG卡
使用场合:主板诊断。专业DEBUG诊断卡能告诉我们故障大概发生在哪个部件上,拥有它可以在确定电脑故障时省时省力,少走很多弯路。这款DEBUG诊断卡与普通诊断卡最大的区别就是增加一组LCD显示模块,让使用者能轻松地得知错误讯息,减少翻阅或对照错误代码的时间。它支持三种BIOS POST信息(AMI/Award/Phoenix),而且可以通过配套的连接配件连接到机箱外,以方便外置侦测。
功能测试卡
使用场合:用于主板的PCI-express16×/8×/4×/1×插槽测试。当怀疑主板PCI-express插槽有问题时,可以使用该测试卡配合附带程序,快速测试PCI Express插槽,达到快速定位故障点的目的。
单步DEBUG卡
二语词汇知识测试工具概述 第4篇
1 词汇量测试 (宽度、广度测试)
长期以来, 词汇广度研究是词汇研究的重点。测试词汇量的一个难点是选取哪些词作为测试对象。我们不可能把学习者所知道的所有词汇都测试到。有两种最应用广泛的选词方法:词典抽样和频率抽样方法。第一种方法在字典中按照一定的间隔选取词汇, 比如抽取每隔5页的第一个词。第二个方法对于测试二语学习者而言则被认为更合理一些, 因为测试的目的不是为了知道学生了解所有英语单词中的多少词, 而是他们了解最常见的和最常用的词有多少。因此, 各种以词汇频率为基础的词表尤为重要, 比如West (1953) 的通用词汇表 (General Service List) , Thorndike和Lorge (1994) 的教师用30, 000词手册 (Teacher"s Word Book of 30, 000 Words) , 以及Xue和Nation (1984) 的大学词汇表 (University Word List) 。
最著名和最广泛应用的词汇量测试工具是Paul Nation在1983年设计的Vocabulary Levels Test。此测试基于Thorndike和Lorge在1944年的词汇手册和West的GSL划分了测试的五个等级:2000词等级, 3000词等级, 5000词等级, 大学词表等级和10, 000词等级。每个等级范围内设计18道题, 回答正确12道题以上就可以说具备了这个等级的词汇量。这个测试的编写比较简便, 计分方式简单, 能在较短时间内测试大量词汇。
Vocabulary Levels Test自设计完成以来, 受到学术界大量关注, Beglar&Hunt对此测试进行了修改, 以取得更高的信度和效度, 但是他们只修改了2000词和大学词表两个等级, 但将测试扩展了。Paul Nation的测试每个水平只测18个词, 修改后增加到27个词, 加27个干扰词, 总共要测54个词。完善后的词汇水平测试使测试结果更加准确。Schmitt, Schmitt&Clapham (2001) 在此基础上又做了更进一步的完善, 增加了需要答题的数量, 每个等级要测试60个单词。他们取消了测试中以“大学词表”为测试基本词的部分, 而用“学术词表”来取代。
Nation的VLT是用来测试学生对词汇的识别或理解, 即接受性词汇知识, 也称消极词汇。然而产出性词汇能力, 也称积极词汇, 在目前也有越来越多的人关注, 着重研究考察二语学习者在口语或写作中的词汇使用、产出情况。
(Laufer and Nation (1995, quoted in Laufer and Nation, 1999) 提出了学习者“词频图”, 以此来记录和描述二语学习者所写作文中的词汇使用状况。首先, 将学习者的作文输入到计算机中, 计算机将自动计算词数, 并将所有单词归为四类:1000词表, 2000词表, 大学词表, 及其它 (包含前三类不包含的单词) 。Laufer and Nation在研究中发现同一学习者所写的两篇作文统计出的“词频图”是一致的, 通过“词频图”可以区别不同水平的学习者。词频图是一种很有发展前景的测量二语学习者写作产出性词汇能力的手段。
词频图所测量的词汇能力被Laufer and Nation称为“自由产出性词汇能力”, 他们在1999年又提出“控制产出性词汇能力”, 即学习者在被动的情况下 (比如完形填空) 产出词汇的能力, 由此又设计了另一套测试, 即Productive Vocabulary Levels Test。这个测试也一样由5个等级组成, 每个等级测试18个单词, 这18个单词被放置于18个句子中, 形成一个独立的语境, 这些单词都是只给出首字母或前面几个字母, 受试者需将词补填完整。与VLT相同, 每个等级答对12道题就可以被认为达到该等级的词汇量。
另一个非常著名的词汇量测试方法是Meara&Jones (1990) 的Eurocenters Vocabulary Size Test。与VLT一样, 此测试也是用于测试学习者的词汇宽度, 也包括不同的词汇频率等级测试。但不同的是测试设计, 该测试是一张包含一些词汇以及一些生造的词汇的词汇表, 受试者需要从中辨认出他们了解意义的单词。生造的非单词在这里的作用是调节分数, 以防受试者夸大了他们所掌握的词汇知识。虽然Meara的这个测试很有前景, 但仍存在一些问题, 一些受试者因为对非单词作出了过度的反应, 认为他们认识这些词而得了很低的分数。
2 词汇深度测试
词汇广度测试都侧重于对单词的认知, 很多从事二语教学的老师和研究人员常用简单的“知道或不知道”来评判二语学习者的词汇水平 (刘绍龙, 2002) , 但却未能判断单词熟练的程度, 以及是否能够正确地使用这些词。这就需要对词汇掌握深度的测试。
自90年代起, 词汇的实证研究开始更注重词汇深度方面, 即学习者对单词的了解程度。词汇深度知识测试主要有词汇联想测试 (Word Associates Test) 和词汇知识5级量表 (Vo-cabulary Knowledge Scale, 简称VKS) 。
2.1 词汇联想测试
Read (1993) 的词汇联想测试是用来从词语搭配和联想意义方面测量词汇深度的。运用词汇联想考查词汇能力, 这是在二语词汇习得研究中得到普遍认可的方法。通过对学习者词汇联想的结果进行分析, 可以准确地得出词汇知识的掌握深度, 此测试信度达到0.93。该测试给出的是1个测试词和8个选择词, 其中4个与被测词在语义方面相关联, 受试者须选出这4个词。
联想测试是一种方便、操作性较强的测试工具, 通过它可以准确地分析了解受试者的词汇深度知识水平, 发现词汇习得中存在的问题。但该测试方法还存在一定的局限性。40个测试词全部是形容词, 涉及的词性非常单一。而且, 该测试对测试单义词比较有效, 而对包含多种意义, 以及具有多重词性的词则无效。相对于这些局限, Wesche&Paribakht (1996) 的词汇知识5级量表在这方面则有了大大的改进。
2.2 词汇知识量表
Nation (1990) 提出掌握一个单词须包含八个方面:读音、拼写、语法表现、搭配、频率、语域、涵义和联想。Wesche and Paribakht (1993) 也提出, 词汇学习是一个逐步发展的过程, 词汇知识的学习有5个阶段:
1) 我不记得见过该词汇
2) 我见过该词, 但不知道它的意义
3) 我见过该词, 我想它的意义应该是
4) 我知道该词的意义
5) 我知道如何在句子中运用该词
Paribakht and Wesche设计的词汇知识量表Vocabulary Knowledge Scale (VKS) 首次面世是在1993年, 受到普遍认可并得到广泛使用。1996年, 两人又再次证明了此测试在词汇附带习得中的信度和效度。
在这个量表中, 受试者自觉汇报他们对某个单词的认知水平, 前四个层次是关于学习者对测试词具体意义的认知, 第五个层次需要学习者掌握该词的语法和搭配等用法, 用该词进行造句。由此可见, 该量表试图掌握词汇习得的循序渐进的过程, 即不是一次性习得一个单词的全部内容, 而是逐步增加的, 渐进的过程。
3 结束语
通过以上回顾, 我们可以看出, 对于词汇测试工具的研究已经取得了一定的成效, 词汇的广度和深度测试都有比较可靠的工具, 但还需进一步完善。而词汇的提取速度方面现今仍基本处于空白, 还有待探索。
摘要:该文从二语习得研究的角度出发, 介绍了几种常用的、被学术界普遍认可的外语词汇测试工具, 分析比较并总结了各测试工具的利弊。Nation&Waring对词汇能力维度的划分为词汇测试提供了一个界定性质的可能。
关键词:词汇测试,宽度测试,深度测试
参考文献
[1]Wesche M, Paribakht T S.Assesing Second Language Vocabulary Knowledge:Depth Versus Breadth[J].The Canadian Modern Language Review, 1996 (53) :191-218.
[2]Read J.The Development of a New Measure of L2Vocabulary Knowledge[J].Language Testing, 1993, 10 (3) :355-371.
[3]Nation I S P.Teaching and Learning Vocabulary[M].New York:Newbury House, 1990.
服务器性能测试典型工具介绍 第5篇
一台服务器系统的性能可以按照处理器、内存、存储、网络几部分来划分,而针对不同的应用,可能会对某些部分的性能要求高一些。
Iometer():存储子系统读写性能测试
Iometer是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的最大IO能力、磁盘系统的最大吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。
Iometer操作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。
Sisoft Sandra():linux下I/O性能测试
现在有很多的服务器系统都是采用linux操作系统,在linux平台下测试I/O性能可以采用iozone。
iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试所有这些方面,生成excel文件,另外, iozone还附带了用gnuplot画图的脚本。该软件用在大规模机群系统上测试NFS的性能,更加具有说服力。
Netperf():网络性能测试
Netperf可以测试服务器网络性能,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。
Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是 netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。
针对应用的测试工具
系统的负载和压力需要采用负载测试工具进行,虚拟一定数量的用户来测试系统的表现,看是否满足预期的设计指标要求。负载测试的目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等如何决定系统的性能,例如稳定性和响应等。
负载测试一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。
使用压力测试工具对web服务器进行压力测试。测试可以帮助找到一些大型的问题,如死机、崩损、内存泄漏等,因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。
Loadrunner:预测系统行为和性能的负载测试工具
目前,业界中有不少能够做性能和压力测试的工具,Mercury(美科利)Interactive公司的LoadRunner是其中的佼佼者,也已经成为了行业的规范,目前最新的版本8.1。
LoadRunner 是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试,LoadRunner 适用于各种体系架构,能支持广范的协议和技术(如Web、Ftp、Database等),能预测系统行为并优化系统性能。它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。Loadrunner是一个强大有力的压力测试工具,它的脚本可以录制生成,自动关联。测试场景面向指标,实现了多方监控。而且测试结果采用图表显示,可以自由拆分组合。一般来说可以按照服务器硬件、网络、应用程序、操作系统、中间件的顺序进行分析。
Webload:WEB性能压力测试
webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。
用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。当前最高版本是6.0。webload提供巡航控制器cruise control的功能,利用巡航控制器,可以预定义web应用程序应该满足的性能指标,然后测试系统是否满足这些需求指标;cruise control能够自动把负载加到web应用程序,并将在此负荷下能够访问程序的客户数量生成报告。
工具测试 第6篇
摘 要:在高温高压的天然气内一般会含有大量的硫化氢、二氧化碳等腐蚀性气体,在测试作业中会出现井下测试管柱不能密封、油管出现腐蚀、损坏、压力泄露等问题,进而对施工的进度以及人员和设备的安全等造成影响。对此,从工艺和安全角度上出发,在简单和实用原则上,通过对四种DST管柱结构的应用特点和工艺实行分析,进而得出DST的测试管柱。此外,结合井况实用不同的合理且有效测试管柱组合,对高温高压井现场测试和施工质量做出保证。
关键词:高温高压井;测试;可靠性;有效性
中图分类号: TQ023 文献标识码: A 文章编号: 1673-1069(2016)29-182-2
0 引言
在全球石油天然气的需求增大状况大,很容易被勘探到目标得到了长足的发展,当前,很多的石油公司逐渐开始将自己的勘察目标定位在了环境恶劣的油气实施勘察,比较常见的恶劣环境之一就是高温高压井。高温高压井的测试和一般的井存在比较大的差异,有着较多的局限性,弱工程条件局限性、温度压力等限制,对此,在现场作业中,充分的考虑井矿和井矿的具体条件,根据井下地质情况合理选取测试设备并采取合理井控措施,采用合理工艺流程,保证测试任务可以顺利完成。
1 现场设计
1.1 测试的方法
通常使用的测试方法是对其中一层测试中,将一层实行关闭,随后开展逐层上返测试,在保证剂量要低于压井液密度情况下,达到负压射孔测试的联作,在测试的时间很长之后,直接跳转并采取无固相射孔液的方式。
1.2 地面设计
根据测试的工具实现起下、坐封、放喷求产、关井以及压井的各个状态下确定井口的装置、坐封历程以及放喷求产的过程和设备以及压井流程。根据地面的连接顺序依次排列,同时还要确定连接工具管线、规格和设备的名字,以及准确的额定压力,实现现场地面流程安装过程的顺利,同时还要在工作中分析额定压力。
1.3 数据采集系统设计
采取温度、压力和数据的自采系统,了解放喷求产和关井地面的位置和温度改变,将以上内容当作现场管理中的重要依据。在地面监测中的关键位置为:井口油压、技术套管、环空压力和油层套管顶部的压力以及温度;测试数据顶部的压力和温度,二级油嘴管汇下流压力和温度,分离器中的压力。同时还要结合井下管柱和地面井口以及各个监控地点工具的最大承受压力,通过以上措施,监控井下管柱和地面井口的各个监控位置下的工具额定压承,监控各个监控点的最大以及最小的压力,同时还要对井口的最高温度实行有效监控。
1.4 井下管柱设计
井下工具操作是需要被工程条件所限制的,在满足资料录取的基础上,管柱的结构要保证越简单越好。关于设计测试管柱,需要存在的特点是操作简便、灵活使用等特点,同时做好良好应急。
在设计中必须需要对管柱的力学性能进行分析,同时要结合高温高压井特点,对下列几点进行考虑:套管内的压强评估和对抗外力挤压强度的评估;分析顶替射孔液整个过程的套管外挤压力变化情况,同时评价射孔液密度设计的合理性和安全性;针对有可能会出现的较为恶劣的情况下,对管柱的强度进行校核;并且实现在各种工况下计算出管柱的变形情况,计算长时间试采或投产井气体冲蚀;根据强度校核和变形情况实行计算,提出管柱最佳组合建议;并且要根据管柱应力确定孔射、酸化和测试联作施工泵压,并且确定环空平衡压力的施工参数安全数值。
1.5 实行施工计算测试
深井在高温状态下的底层测试井下管柱和地面井、放喷过程等,会伴随测试井的工况变化较大应力,因此对于管柱的设计,在不同工况下应力变化的计算是测试工艺获得成功的重点。
计算井口最高压方法:井口的最大压力的测试中,选择控制的井口、计算施工力学测试的数据十分重要,在设计中同时还要接受相应的预测。
井口温度预测,在温度变化中,精密测试管柱会发生伸长或缩短,分别针对封隔器造成向上或向下的力。针对插管封隔器,确定插管程度,计算得出温度效应,保证插管不会出现滑动或抽出。对固定式分封隔器要计算其温度效应力,该力可以导致封隔器失封。
2 测试采取的工艺
2.1 测试工具的选择
由于高温高压井测试存在自身特点,针对测试工具的压力级别、放硫化氢等级别的要求十分严格。原则是:井下DST测试工具的额定工作压力应该不小于最高预测井底关井压力的1.1倍;针对含硫化氢的地层测试,要结合底层硫化氢的含量来确定工具的防硫级别,进行该设备的选择要符合NACE MR-0175标准要求。
2.2 使用合适的射孔液和压井液
在测试中利用射孔液的密度一般需要遵守三个原则,这三个原则一是满足封隔器承压能力需求;在射孔测试联作条件下,根据测试垫密度设计射孔液密度,设计压差时要保持器低于封隔器工作压差;并且还要满足替液作业安全需要。使用中低密度射孔液针对原钻孔内出现的压差引起井筒负压的出现,射孔液密度保证地层不会经过套管悬挂器下进入井筒内,更不能因为替液作业引起套管外挤力变化,满足相关的作业要求。
2.3 高温高压井中的测试管柱设计
高温高压井的测试管柱存在一个共同点就是对井下开关阀进行了设置,显示出了保证先从井下对油气源实现切断的思路,进而有效缓解井口的压力,避免出现井口与地面油气失控。
2.3.1 射孔测试的联作管柱
管柱的各个结构依次是:控制头、钻杆、深短节、循环阀、安全循环阀、放样阀、LPRN阀、内压计托筒、电子压计托筒、旁通阀、安全接头等。
2.3.2 跨隔测试管柱
跨隔测试管柱的结构从上到下分别是:控制头、油管、反循环阀、油管、MFE测试器、锁紧接头、压力计托筒、减销封隔器、筛管、起爆器、射孔枪、减震器、卡瓦分隔器、电子压力计、泄压阀、盲接头以及监测压力计。
2.3.3 RD测试管柱
这一管柱作业有着较高的安全度,比较适合运用在确认后的高压以及高产底层,同时还符合了需要实施射孔、酸化和测试联作等要求。其具有的特点主要是:管柱内的RD安全循环阀球阀能够开启但是循环孔需要被关住,管柱内部是重泥浆,其内外的压力需要保持平衡。管柱在到位之后,正替清水以及在轻泥浆之后要先实行坐封封隔器,并且在随后的管柱内实行憋压孔射。经过求产后,环空憋压将会打开RD循环阀的循环孔,关闭球阀后,实现井下的一次灌井和压井的反循环。
2.3.4 投棒射孔测试管柱
该管柱主要特点为安全可靠,且封隔器具有良好的耐高温性,最高耐温是180℃,并且还能在关注中实现进一步负压。管柱中的主要结构是:油管、定位短节、RD安全循环阀、内置电子压力计、开孔和点火头、射孔枪等。
以上几种对管柱进行测试的方法要结合不同情况来灵活选用,或是可以变换测试工作组的新管柱。保证高压作业的安全性,钻杆测试管柱通常是要被运用在井口压力小于50MPa、其产量在50×104m3/d之下的工况。
2.4 井口控制
高压气井井口控制系统与井的安全密切相关,因此要根据井口压力实现预测性的选择井口控制装置。井口的流动压力预测是低于50MPa、关井压力要小于70MPa两开两关的常规性测试可以采用103MPa测试控制头,并且两端配备了液动控制阀。系统试气和预测井口的流动压力通常要比50MPa这一数值高、灌井压力要高于70MPa两开两关常规测试采用103MPa采气树。
2.5 地面测试
较为合理的高温高压井地面测试要经过以下环节:用地面油嘴管汇取代钻台管汇,将很容易发生失控的环节保持远离井口。采取两套流程双翼放喷求产。通过液动和手动双重控制高压有效控制井口,紧急情况能够远程控制,井口到地面油嘴管汇使用件数密封的专用高压管线进行连接,避免出现高温高压气体的泄露,造成火灾。设置地面测试数据自动采集装置,对压力进行适当的采集和检测,同时还要对温度和产量等数据实行有效收集,并且能够较为及时地发出警报信号。设置安全装置能够有效防止油气发生失控,引发突发事件。
3 小结
结合油气井情况确定合理的施工方案,安装和配置安全有效测试管柱,并且选取合适的管柱组合,开展必要的估算保证测试成功。
在实行高温高压井的测试中,井口装置和地面流程化设计密切联系着施工的安全和可靠。
参 考 文 献
[1] 李俊明,杨庆峰,陈胜军.川东北地区高压气井测试技术研究及现场应用[J].油气井测试,2014,02:35-44+77.
软件运行时错误测试工具评析 第7篇
根据IBM-Berkeley调查统计:在每一千行的代码中大约就会发现一个运行时错误,而且在软件的维护阶段所检测到的错误中有30%-40%是运行时错误,可见运行时错误对软件质量的影响是多么大。该文对几种常用的可以发现软件运行时错误的测试工具进行评析。
1 什么是软件运行时错误(Run-Time Errors)
运行时错误(Run-Time Errors)是所有的软件错误中最具风险的错误。它主要发生在软件动态运行的过程中。我们在日常家庭用的Windows操作系统或者其他软件工具时也会时常出现运行时错误,一般情况下出现运行时错误后无论怎么操作,程序都会关闭。上述软件出现问题并不会产生太大的影响,但是对于对安全等级要求很高的系统,比如汽车、航天、军用领域,发生这种错误所从带来的负面影响或许是十分巨大的。由ANSI C定义的运行时错误是指那些能导致预定义之外的不正确结果或者处理器停机的错误,它的风险等级在所有软件错误中是最高的,由它引起的后果可能为:数据崩溃、安全保密被破坏、处理器停机等;它也可能导致给外部设备发送非受控命令,引起不可预测、不确定的行为。
典型的运行时错误包括:引用越界指针和空指针、读未初始化变量、类型转换非法、访问超界数组、浮点数和整数下/上溢出、不合法的算数运算(如:负数开平方错误,除零错误)、代码不可达等。
在软件之中广泛存在运行时错误,对软件的安全性产生潜在的风险。因此针对运行时错误测试技术的研究是当前最重要的课题之一,而发现运行时错误最直接有效的手段就是专用测试工具。
2 软件运行时错误测试工具
2.1 语义分析技术
目前,测试软件的运行时错误所用的工具都是基于语义分析技术。这种技术主要是通过数学定理所提供的规则动态分析软件的行为。语义分析技术并非通过穷举法,它有能力在更为普通的模式下来表达程序所处的状态,它还能提供巧妙的规则来对它进行处理。当运行时错误在执行检测的时候,为了尽可能早的发现程序中运行时错误,语义分析技术会详细的分析所有危险的操作。
运行时错误的语义分析检查主要有以下几点:
1)控制流检查:控制流程序要控制程序跳转到合法代码段。例如:C语言中的break语句,控制程序退出该程序段的最内层for、switch或while语句。否则应报错。
2)类型检查:若操作符被用作不相容的操作数,应报错。
3)相关名字检查:当同样的一个名字需要出现大于等于两次的时候,必须要对这几个地方使用的名字是否一致进行检查。
4)作用域分析:分析元素的作用范围,保证元素不会出现使用问题。
5)一致性检查:绝大部分情况下只能定义一次对象。
2.2 测试工具分析
2.2.1 Klocwork
Klocwork公司综合应用近年来最先进的多种静态分析技术,基于其专利分析引擎技术,开发了Klocwork测试工具。Klocwork是一款非常优秀的软件静态分析软件。
它最主要的特点如下:
1)发现软件缺陷的种类覆盖面广,既包含安全漏洞缺陷,又同时包含软件质量缺陷,还能对编程规则、软件架构的违反情况进行分析;
2)支持多种开发语言,可以分析Java和C++/C程序;
3)可以对软件的各种度量进行分析(包含Halstead程序度量、McCabe复杂度);
4)可以全面的分析软件,既能对可视化的架构进行优化、分析,又能对软件的缺陷进行分析;
5)可以对千万级代码行的超大程序进行分析。
6)可以对多种主流的IDE开发环境提供集成;
针对软件运行时错误,Klocwork能识别数组越界、非法指针引用、非法浮点数操作、不可达代码、无限循环等。
2.2.2 Polyspace
Polyspace是世界上首家自动检测嵌入式软件运行错误的工业化工具,不需要代码执行和修改,不需要运行耗时的测试用例。其主要特点有:
1)高效:可以在代码评审和测试阶段确定运行错误;
2)质量:彻底标识所有可能导致运行时错误的操作,并用不同的颜色标出来;
3)安全:处理所有的正确条件。总是考虑最坏的情景,并指出可能的运行错误;
4)产品化:PolySpace是非侵入式的和基于源代码的。在开发过程中,使用PolySpace尽可能在单元和集成时检测运行错误,从而节约确认阶段的时间,不必更改过程。
可以通过PolySpace自动检查的错误为:浮点数和整数的下/上溢出、读未初始化变量、访问超界的数组、引用越界指针和空指针、算数运算非法(例如:负数开平方,除零错误)、转换类型不合法、代码不可达、多线程应用中访问未保护数据的时候发生冲突。
2.2.3 Astree
Astree是一个可参数化设置的基于抽象解释的静态分析工具,其目标是证明用C语言写的程序中不存在运行时错误。其主要特点有:
1)在编译阶段就能测出软件的运行错误。只要是代码可编译的,就可将代码放在Astrée测试环境下,经过简单配置后,便可自动检查错误;
2)测试时不需要写测试用例。传统的覆盖率测试需要花费大量精力去开发测试用例,而使用Astrée就不需再写用例;
3)测试时无须更多的代码插装,也不必改变开发过程;
4)分析准确性高,通过参数化设置等,可以实现“零误报”;
5)分析速度快。
Astree当前可以报告的错误包括:数组范围越界,整数被零除,浮点溢出和非法操作,整数运算的wrap around行为(主要由溢出引起),以及类型转换导致的wrap around行为(目标类型太小无法表达转换值),以及用户关于软件定义的任何断言。另外,,Astrée能够指出未分析(不可达的)的代码并且对没有终止的代码进行告警。
通过多次测试项目的实际使用,对Klocwork、Polyspace、Astree的分析结果比较如表1。
从表1的分析结果可以看出,专用测试工具在发现软件运行时错误时发挥着重要作用,但是测试工具并不是完美的,各个工具所使用的分析技术导致它们都只适用于部分缺陷的测试。在软件运行稳定性的保证及软件测试质量的提高方面,我们认为软件运行时错误测试工具的作用是功不可没的,但在看到测试工具优点的同时也要注意到各个测试工具的短板。
软件运行时错误测试工具的优点:
1)分析只需要代码,不会改变软件开发的过程,可以在软件开发任何阶段进行;
2)有助于软件开发的早期发现软件运行时错误。方便修改,能有效的提高软件开发效率,降低软件开发周期;
3)不需要设计测试用例,不需要代码插装,节约时间;
4)有助于开发人员及时自查,及时纠正开发人员编码风格缺陷。
5)对发现的错误直接定位,相比动态测试发现该错误,节省了错误定位时间;
软件运行时错误测试工具的缺点:
1)分析结果需要人工确认;
2)有可能存在误报和漏报的情况,影响测试正确率;
3)由于算法的片面性,不能发现所有的问题。
3 结束语
在软件开发的任意一个阶段都可以借助软件运行时错误测试工具及时的发现错误,对软件成本的控制及软件开发效率的提升方面非常有帮助。鉴于该类测试工具功能的日益完善,软件开发人员对其依赖的程度逐渐增加。但开发人员时刻都要意识到,工具也会有算法片面性及漏报、误报的因素,仅仅依靠静态测试来发现运行时错误是不够的,需要在软件生命周期的晚期阶段实施动态测试。动态测试和静态测试相结合,从而提高测试的有效性。不同的软件运行时错误测试工具各有优势与不足,如何选择适合的测试工具,需要结合实际情况对诸多因素综合权衡。
参考文献
[1]肖庆,张威,宫云战,等.内存泄漏的一种静态分析方法[J].装甲兵工程学院学报,2004,18(2):23-26.
[2]韩柯,杜旭涛.软件测试[M].北京:机械工业出版社,2003.
[3]杨宇,张健.程序静态分析技术与工具[J].计算机科学2004,31(2):171-174.
[4]蒋鹏.基于Astree的软件运行时错误检测[Z].2012.
[5]周涛.航天型号软件测试[M].北京:宇航出版社,1999.
[6]康一梅,张永革,李志军,等.嵌入式软件测试[M].北京:机械工业出版社,2008.
工具测试 第8篇
1 APR工具简介
A P R测试工具是美国哈里伯顿公司的产品。与其他测试仪器相比, 它有如下特点: (1) 该工具的内径较于中途测试工具H S T大, 整个A P R测试管柱中的内径至少为45m m; (2) A P R工具在管柱中的所有组成 (除液压循环阀外) 的开关井都是通过环空打压操作的。在操作过程中, 它有四个优点:第一、吸收了封隔器试气的优点, 可以快速降液面诱喷、安全关井测压、获取比较多的试油资料数据;第二、可以通过测试管柱向地层大量的挤注液体。所以可以在一趟测试管柱的情况下完成测试酸化再测试的多项作业。这样不但节省了测试时间, 不仅提高了测试效益, 同时也加快勘探的速度。第三、A P R工具的大通径不会对高产气层产生节流作用。因此取得的气产量和测试资料所反映出的地层的特性更能接近于测试层的真实情况。所以A P R工具更适用于高产气层的测试。
2 APR工具在高压气井测试工艺技术
A P R测试工具是一种只能在套管内使用的全通径压控式测试工具, 适用于海上平台、陆地高产量井、大斜度井及需要特殊作业井的测试。该工具在测试管柱不动的情况下, 由环形空间压力控制测试阀, 实现多次开关井, 具有操作压力低且方便简单的特点。由于是全通径, 有利于高产井测试, 同时可以对地层进行酸洗、挤注和各种绳索作业。APR测试工具主要包括OMNI阀、RD安全循环阀、液压循环阀、伸缩接头、RTTS封隔器等。在A P R高压气井测试中最典型的管柱结构如:枪尾+枪身+两级减震器+油管+RTTS封隔器+RTTS安全接头+RD循环阀+BJ震击器+液压循环阀+电子压力计托筒+RD安全循环阀+OMNI阀+油管+定位短节+油管。
APR测试工艺的主要施工步骤:
(1) 所有的下井工具、地面工具在工房按要求进行性能检验和水压密封实验, 达到规定要求。
(2) 握施工井的套管结构、人工井底、井斜、压井液密度、射孔层段及岩性、地层温度等所需要的各种详细资料。
(3) 调整好管柱, 然后正转管柱下压, 坐封封隔器。
(4) 装井口采油树、钻台管汇、放喷管线、打压管线, 并试压。
A P R工具在测试工艺的应用上应注意的问题:
(1) APR在高压气井测试管柱的优选。在测试管柱中封隔器承受压差大, 控制井下座封严密难;封隔器满足要能够下钻、能够座封、能够解封起出管柱的要求, 同时能满足试气完后能够顺利循环压井的要求。
(2) A P R工具高压气井测试管柱丝扣密封问题。在测试管串中封隔器是需要胶筒密封, 测试工具、油管都需要丝扣密封, 测试工具除了内部元件是橡胶圈和少量的金属密封外, 其丝扣也是特殊的C A S扣, 特殊油管如B G T等扣型, 这样就保证了整趟管柱的密封性。
(3) APR高压气井的测试管柱, 在高压、高含硫气井中应用时, 保证管柱在含硫气井中不发生硫化物应力腐蚀破裂现象, 一定要采用抗硫材料的工具和油管。
3 典型实例
2011年, 在四川某井采用A P R测试工具进行了酸压射孔三联作, 该井取得了测试成功, 达到了良好的效果。以川东北某井为例介绍A P R测试工具在高产、高含硫气井测试的应用。
该井是中石化股份有限公司勘探某分公司部署在四川盆地川中低缓构造带北斜坡某区块一口评价井, 油气测试情况:酸压后进行放喷求产测试, 其中在油嘴+孔板临界速度流量计放喷求产, 油压23.59MPa, 合计气产量124.36104m3/d。
该井在施工中使用A P R三联作工艺, 管串中增加了两级伸缩节。该管串主要工具有OMNI阀、RD安全循环阀、RD循环阀、伸缩节等A P R全通径工具。射孔时首先提高环空压力 (低于R D安全循环阀破裂压力10M P a) , 降低封隔器压差。
(1) 气相有效渗透率为48.510-3μm2, 为高渗透层。
(2) 表皮系数为-6, 表明经过酸压后储层近井地带已不存在污染。
(3) 本层获得了工业气流, 求产阶段四个工作制度均不出水, 分析地层不出水。气样分析结果:气体主要以甲烷为主;组分分析为高含甲烷中含硫气体。
(4) 霍纳外推测点压力67.18MPa, 储层中部与测点距离为115.71m, 压力系数1.08, 属常压储层;测点温度为146℃, 折算地层温度为148℃, 为低地温梯度异常系统。
(5) 气藏千米井深稳定产量16.9104m3/k m.d。测试层为高产层。定性结论:测试层为高产气层。
4 结论及建议
(1) APR工具在含硫天然气井中应用、需要采用防硫气密封的油管管柱、防硫井口以及地面测试流程, 这样就能够成功有效的进行测试工作。
(2) APR工具在高压气井测试工艺在抗内压能力的要求, 必须满足A P R测试工具测试时所承受酸压、套管打压、地层压力的承压要求。
(3) 由于在酸化压裂过程中受力超过
了额定工作值, 而使水力锚锚爪磨平、失效, 导致封隔器上移, 最终致使管柱发生弯曲、泄压等现象的发生。我们通过对水力锚锚爪的受力分析发现:压差相同的情况下, 由于水力锚锚爪的在轴向的受力面积没有变化, 因此可以通过增加水力锚锚爪个数的方法来减少单个锚爪的受力。考虑到封隔器的机构以及维修保养等因素, 决定将水力锚锚爪的数量增加到原来的2倍。
(4) 井口放喷管线的要求要适用于高压、耐高温、防止硫化氢等腐蚀性气体的腐蚀。放喷管线在布置方面要有一定的条理, 避免人员的伤害。
摘要:常规测试存在较多问题, 而高产含硫气井试气涉及高产气体流动、硫化物应力腐蚀更为复杂。采用全通径、抗硫APR测试工具和特殊扣抗硫油管可以解决高产、含硫气井三联作测试的难题。本文介绍了APR测试工具在三联作的工艺技术, 并以四川川东地区的预探井为例, 较详细的说明了APR工具在高产高含硫气井的应用情况。
工具测试 第9篇
关键词:LoadRunner自动化测试工具,Web性能测试
1、Load Runner简介
Load Runner是Mercury Interactive公司发布的一款预测系统行为和性能的工业级标准性能测试、负载测试工具。通过模拟上千万用户实施并发负载及实时检测的方式来确认和查找问题, Loadrunner能够对整个企业架构进行测试, 企业能最大限度地缩短测试时间, 优化性能和加速应用系统的发布周期[1]。
2、Load Runner的组成及测试过程
整个Loadrunner主要由三部分组成[2]:
(1) 虚拟脚本生成器———Virtual User Generator
虚拟用户脚本生成器通过Proxy方式实现, 具体来说, 就是通过一个Proxy作为客户端和服务器之间的中间人, 接收从客户端发送来的数据包, 记录并将其转发给服务器端;接收从服务器端返回的数据流, 记录并返回给客户端。这样一来, 无论是客户端还是服务器端都会以为自己在一个真实的环境中, 而虚拟脚本生成器能通过这种方式截获并记录客户端和服务器端之间的数据流。在截获数据流之后, 虚拟脚本生成器还需要根据录制时选择的协议类型, 对数据流进行分析, 然后用脚本函数将客户端和服务器端之间的数据流交互过程体现为脚本的语句。
(2) 压力调度和监控系统———Controller
压力调度工具可以根据用户的场景要求, 进行设置不同脚本的VU数量、设置同步点等操作, 而监控系统则可以对各种数据库、应用服务器、数据库的主要性能计数器进行监控。
(3) 结果分析工具———Analysis
通过Analysis我们可以对负载生成后的相关资料进行整理并对其进行分析。
利用Load Runner进行性能测试的工作流程为:计划测试→创建VU脚本→创建测试场景→运行测试场景→分析结果。
3、Load Runner性能测试结果分析
Analysis相当于一个大的数据库或数据仓库, 系统将场景运行过程中得到的全部数据都存于Analysis中, 然后Analysis对结果数据进行整理, 得出了一系列的分析图和表格:
(1) 测试分析概要界面:在该界面可以看到, 场景名字 (Scenario Name) 、结果文件 (Resultsin Session) 、运行时间 (Duration) 、最大同时运行用户数 (Maximum Running Vusers) 、网络流量 (Total Throughput) 、平均每秒带宽流量 (AverageThroughput) 、总请求数 (TotalHits) 、平均每秒请求数 (Average Hits Per Second) 。
(2) 测试分析事务统计:由该图可以得出以下信息:
(1) 事务 (Transactions) :所有事务的响应时间
(2) 事务最小时间 (Minimum) :执行此事务的最小时间, 也就是最快的
(3) 事务平均时间 (Average) :是指所有事务消耗时间的算术平均值
(4) 事务最大时间 (Maximum) :执行此事务的最大时间, 也就是最慢的
(5) 标准方差 (Std.Deviation) :Std是standard的缩写, Std.Deviation即标准方差, 在事务统计信息里, 相关方差值越小, 数据越好, 越有说服力。
(6) 90%的事务 (90%Percent) :指90%的事务所消耗的时间
(3) HTTP响应统计
(4) 运行时虚拟用户图 (Running Vuser图) :该图可以反映系统形成负载的过程, 随着时间的推移, 虚拟用户数是如何变化的。
(5) 每秒点击数 (Hits Per Second) 和吞吐量 (Throughput) :每秒点击数反映了客户端每秒钟向服务器提交的请求数量, 可用来评估虚拟用户产生的负载量;吞吐量指的是场景运行过程中虚拟用户在任何给定的每一秒从服务器获得的数据量, 可以用来评估服务器在流量方面的处理能力以及是否存在瓶颈。
(6) 平均事务响应时间 (Average Transaction Response Time) :这是性能测试中非常重要的性能指标之一, 平均事务响应时间越小, 说明系统的处理速度越快。
可以进一步人工地对结果数据进行分析, 从而找出系统的性能指标和可能的瓶颈, 最后生成测试报告。
4、结束语
Load Runner能够预测系统行为并优化系统性能, 通过模拟实际用户的操作行为和实行实时性能监测, 来更快的查找和发现问题。此外, Load Runner能支持广泛的协议和技术, 为特殊环境提供特殊的解决方案。
参考文献
[1]柳胜著.性能测试从零开始-LoadRunner入门与提升.北京:电子工业出版社.2011:35~56
关于软件自动化测试工具的研究 第10篇
软件自动化测试目前存在两种定义, 第一, 在不需要人的干预的情况下, 运用自动化的测试工具进行自行测试。第二, 对测试的执行使用软件来进行控制, 主要包括测试预期输出和实际输出的效果的对比, 测试是否已构建了前提条件等。第一种定义更着重于强调“自动化的测试工具”, 要求在测试的过程中, 不需要人的干预, 只需软件进行运行。而第二种属于广义上的定义, 它只是涉及软件, 而非自动化的测试工具, 并非绝对意义上的软件自动化测试工具。
2 软件自动化测试工具的分类
软件自动化测试工具目前存在很多种类, 从应用测试的角度分析, 主要包括:白盒测试工具、黑盒测试工具以及测试管理工具等:
2.1 白盒测试工具
白盒测试是指设计测试时主要是从程序的内部出发, 其方式是测试程序的所有逻辑路径, 在不同点进行程序的检查, 确定其状态, 以此来检验产品的内部行为是否是严格依据设计说明书的设计进行, 检查是否每条路径都是按照预定的要求进行正常工作。白盒测试工具可进一步划分为静态的测试工具和动态的测试工具。静态的测试工具主要是指仅通过检查和分析源程序的结构、语法、接口以及过程来确定程序是否正确, 并不检测程序的本身。
2.2 黑盒测试工具
黑盒测试是指在对已知产品的应有功能进行彻底了解的情况下, 用测试的方法来对每个功能进行检测, 以确定每个功能是否正常使用。黑盒测试工具的工作原理是通过录制和回放脚本, 操作模拟用户, 然后把预先给定的数据和被检测系统的实际输出记录进行比较。在测试的过程中, 不需要考虑程序的内部特性以及内部结构, 它主要适用于确认软件的测试, 测试其是否按照规格说明书的要求正确使用程序功能。
2.3 对数据生成进行检测的工具
对数据生成进行测试的工具是在测试的前端进行应用, 这能够给测试过程提供充足的可用数据。同时, 将变换、转化以及析取的数据作为分析研究的主要依据, 为测试程序生成提供可靠的数据。此外, 依据配置工具对生成的配置数据进行输送的原则, 再结合一个具有自动配置功效的引擎, 便可以在已经存在的数据的基础上, 自动生成需要的配置文件。
2.4 对管理进行测试的工具
对管理进行测试主要是利用科学的工具管理整个软件的输入、运行过程以及测试结果的过程。对管理进行测试的工具主要是运用中央数据仓库, 达到开发人员、测试人员以及其他相关人员的随时随地信息交流的目的。及时跟踪测试日程、测试计划、测试执行中出现的错误, 以实现自动化的全过程管理, 从而使得回归测试的效率不断提高, 使得测试的质量、时间、以及覆盖都不断完善, 满足软件自动化测试的要求。
3 软件自动化测试工具的实施程序
软件自动化测试在本质上与软件开发过程是一样的, 都是通过自动化测试工具来实现。使用自动化的测试工具, 分析相关的测试需求, 对不同的自动化测试用例进行分析, 以实现自动化测试框架的顺利搭建, 实现自动化的设计和编写脚本过程, 提高脚本测试的准确性, 从而实现测试脚本顺利运行。具体过程如下:
3.1 分析进行测试的需求
不同的人员进行软件自动化测试时的目的往往是不一样的, 比如测试人员、开发管理者等在进行测试时会存在安全测试、功能测试以及性能测试等方面的差异。此外, 不同的测试工具具有不同的测试功能, 所以, 在进行测试之前, 应对测试方案进行调查, 收集需求, 以选择适当的测试工具。
3.2 对测试用例进行认真设计
测试用例主要是指关于测试目标的一系列测试, 它有一定的顺序要求。在设计测试用例时应对测试时的输入值、标准结果、输出值等信息进行规划。
3.3 对测试脚本进行编写
编写测试脚本的过程实际上是对具体的测试用例脚本进行转化, 依据测试设计时的需要生成测试脚本, 对于一些高度自动化的测试工具, 则可以依据以前软件的运行情况来对测试用例进行自动录制。
3.4 对实施过程进行测试
对实施过程进行自动化测试主要是依靠一定的测试支持系统进行自动化的控制和调度测试的过程。
3.5 生成准确的软件测试报告
根据测试结果的分析, 及时发现出现在产品中的问题的实质, 找出解决对策, 从而准确评估产品的质量, 实现产品质量的提升。
4 结束语
目前软件技术得到了突飞猛进的发展, 规模也日益增大, 同时软件的复杂程度不断增加, 要想提高软件自动化测试程度, 就必须达到软件自动化测试工具的准确使用。目前自动化测试工具的种类非常多, 我们在选择自动化测试工具时, 要综合考虑各方面的因素, 只有这样才能使得测试的质量和效率不断提高, 降低测试所需要的成本, 从而促进软件开发工作的快速发展。
参考文献
工具测试 第11篇
1 Appium简介
Appium是由Sauce Labs提供支持的一款开源自动化测试框架, 它是针对原生、混血和移动Web应用的一款高效的测试工具。它使用Web Driver协议来驱动IOS和Android应用。
Appium的设计理念是测试原生应用, 不要求用户引入额外的SDK或者重新编译应用, 可直接使用打包好的App进行测试。另外, Appium应能与测试人员喜欢的测试实践、测试框架、测试工具一起使用。
Appium旨在使用户可以通过任何语言以及任何测试框架去自动化测试任何移动应用, 并且可以通过测试代码访问后端的API和DB。
2 Appium的基本概念
Appium是IOS和Android平台上针对原生、移动Web和混血应用的开源自动化测试工具。原生应用是使用IOS和Android SDK构建的应用。移动Web应用是通过移动浏览器 (Appium在IOS平台上支持Safari, Android平台上支持Chrome或者内置的Brower应用) 访问的Web应用。混血应用有一个壳包裹Web View一个原生控件用于与Web内容进行交互。通过一些工程 (例如Phone Gap) , 可以很方便地使用Web技术构建应用, 并将其绑定到原生的壳中, 从而创建一个混血应用。
重要的是, Appium是跨平台的, 可以在多个平台上 (例如IOS和Android) 做测试, 使用相同的API。这样可以做到IOS和Android测试集的代码重用。
3 Appium的设计理念
Appium是根据以下四条原则描述的设计理念, 来满足移动自动化的需求。
第一, 测试人员不用为了自动化测试而去重新编译应用或者以任何方式修改;第二, 编写自动化测试时, 不会将测试人员限制在某种特定语言或者框架上;第三, 移动自动化测试框架不应另起炉灶, 搞一套自己独有的自动化API;第四, 移动自动化测试应是开源的。
关于Appium的设计, Appium通过封装厂商提供的框架到统一的API (即Webd Driver API) 中, 来满足第二个理论。Web Driver (又名Selenium Web Driver) 规范了一个客户端/服务器协议 (被称为JSON Wire Protocol) 。基于该客户端/服务器架构, 用任何语言编写的客户端都可以发送相应的HTTP请求到服务器。Appium提供了用各种流行语言编写的客户端, 这意味着, 测试人员可以使用任何想要的测试运行器和测试框架。Appium的客户端是简单的HTTP客户端, 可以以任何方式集成在代码中。换句话说, Appium&Web Driver客户端不是技术上的测试框架, 它们是自动化测试库。测试人员可以以任何喜欢的方式来管理测试环境。
Appium用相同的方式来满足第三个理念。Web Driver意境成为Web浏览器自动化测试事实上的标准, 并且是W3C工作草案。Appium针对移动自动化测试, 提供了额外的API方式用于扩展该协议。
4 Appium的重要组成模块
4.1客户端/服务器架构
Appium的核心是一个暴露了Rest API的Web服务。它从客户端接受连接、监听命令, 并在一个移动设备上执行这些命令, 接着响应一个HTTP Response表示命令执行的结果。事实上, Appium的客户端/服务器架构开创了很多可能性:测试人员可以使用任何语言 (包括HTTP客户段API) 来编写测试代码, 但是如果使用Appium客户端会更容易。测试人员可以将服务器放在与测试运行机不同的机器上。测试人员可以写测试代码并依赖于云服务去接收和解释命令。
4.2 Session
自动化测试总是基于绘画内容来实现的。客户端与服务器初始化会话的方式, 具体到不同的库有区别, 但它们最终都会发送一个Post/Session请求到服务器, 携带一个名为Desired Capabilities的JSON对象。在这一时刻, 服务器将会启动自动化会话并响应一个Session ID用于发送后续的命令。
4.3 Desired Capabilities
Desired Capabilities是一组发送到Appium服务器的健和值 (即Map或者Hash) , 告诉服务器测试人员期望建立的自动化会话类型。这里有各种类型的属性, 可以用来改变服务器在测试期间的行为。例如, 可以设置Platform Name属性的值为IOS, 以便告诉Appium我们期望IOS会话而非Android会话。或者可以设置Safari Allow Popuse属性为true, 目的是在Safari自动化测试会话中, 允许使用Java Script打开新窗口。
4.4 Appium Server
Appium是用node.js写的服务器。它可以通过源代码构件和安装或者直接通过NPM安装。
4.5 Appium Clients
Appium提供了Java、Ruby、Python、PHP、Java Script和C#语言的客户端库, 都是基于Web Driver协议扩展的。当使用Appium时, 测试人员可以使用它们来代替标准的Web Driver客户端。
4.6 Appium.app和Appium.exe
Appium提供了Appium server的GUI封装下载。它们包含了运行Appium Server需要的所有东西, 因此测试人员无须担心Node。它们还携带了Inspector, 用于检查应用程序的层次结构, 在编写测试代码时会很有用。
5 Appium的原理框架
在Android客户端, Appium基于Web Driver协议, 并利用bootstrap.jar, 最后通过调用UIautomation的命令, 实现App UI自动化测试的Java库。另外, 由于UIautomator对Web View的支持有限, Appium引入了Chrome Driver来实现基于Web View的自动化。
在IOS客户端, Appium同样使用Web Driver协议。与Android端测试框架不同的是, Appium IOS封装来苹果公司的Instruments框架, 主要用Instrment里的UIautomation (Apple自动化测试框架) , 然后在设备中注入bootsrap.js进行监听。
6 选择Appium的原因
首先, 测试人员不需要重新编译应用 (App) 或者以任何方式修改它, 因为Appium在所有平台上使用标准的自动化API。
然后, 测试人员可以使用自己喜欢的任何开发工具, 可以使用任何兼容Web Driver的语言, 例如Java、Java Script、Node.js、Php、Python等, 并且基于Selenium Web Driver API和特定语言的客户端库来实现自动化测试。
最后, 测试人员可以使用任何测试框架来驱动Appium。
基于Web Driver协议, 意味着将赌注押在一个统一、自由和开放的测试协议上, 该协议已成为事实上的国际标准。
如果不能通过Appium直接使用苹果的UIAutomation库, 测试人员只能使用Java Script语言, 并且只能通过Instruments应用进行测试。同样, 对于Google的UIAutomatior, 测试人员只能使用Java来编写测试代码。Appium开辟了真正跨平台的本地移动自动化的可能性。
7 结语
上文深入介绍了Appium这款自动化测试工具, 其实它只是自动化测试的一个代表。回顾软件自动化测试的发展历程可以发现, 自动化测试的每个阶段都伴随着软件测试人员对自动化测试技术的探索作出的努力, 在自动化测试过程中选择合适的框架和测试工具不仅对自动化测试的结构起到了一定的帮助, 还从方方面面提高了测试的效率。如何更好地进行软件测试工作, 一款好的工具仅仅是个开始, 我们需要不断完善理念, 在实践中发现问题、分析问题, 找到解决问题的更好办法。但是不可否认的是自动化测试技术将会不断进步, 逐步代替手动测试。而如今日益白热化的软件市场对产品的质量提出了越来越严苛的要求, 作为软件的质量把关者、, 监控者只有紧紧跟随自动化测试脚步, 设计更为详细的测试用例, 充分了解产品需求才能成为一个成功的测试工程师。
参考文献
[1]温素剑.零成本头现Android/iOS自动化测试——基于Appium和Test Perfect[M].北京:电子工业出版社, 2016.
工具测试范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


