API测试

2024-08-16

API测试(精选7篇)

API测试 篇1

0 引言

随着软件测试技术的发展, 软件的自动化测试得到了越来越多的重视[1]。现代软件规模不断的扩大, 基于面向对象的软件架构为了提高独立性和复用性采用了多层结构。API是处于上下层之间的接口, 是开发者提供给使用者的工具[2]。API的测试直接关系到了软件的整体质量。API测试是验证组成软件的单个方法的正确性。包括逻辑的正确性, 功能的正确性等。测试需要首先初始化测试的环境, 然后需要调用API, 最后需要对结果进行验证。如果对API实行手工测试那么测试工作量是非常大的, 而且API本身的特点适合自动化, 所以API测试的自动化研究有很大的价值。

1 设计概述

本文针对实际的软件测试设计并实现了一个API自动测试的框架, 这次设计的API自动化测试框架主要分成4个部分, 分别是对API的分析提取处理, 测试用例的生成, 用例的执行, 以及执行结果的验证。

系统主要应用于windows平台, 整个系统采用C++.NET设计实现。XML (Extensible Markup Language) 在整个框架的作用十分关键, 它是框架中的各个模块之间的接口, 增加模块的独立性, 降低耦合度。XML也要用来存储驱动用例的数据以及配置信息。XML是本文设计的框架最适合的数据存储实现方式, 它使用起来快捷方便。

近年对软件测试技术的不断研究评估, 得出纯自动化的测试能发现的软件漏洞是相当有限的, 特别在专业知识比较强的软件更是要大大低于手工的测试。因此, 本文选择了开发一个API测试的自动化框架。而对于测试用例的生成采用生成对应的模板, 测试人员可以结合测试的重点进行配置。

2 功能实现

框架主要是使用c++语言编写实现, 提供了简单的操作界面, 框架示意图如图1。

2.1 代码分析

系统的代码分析模块, 分析模块首先需要从源代码的头文件中提取出需要使用的API信息, 然后生成XML文件。由于系统设计时针对的软件对应功能模块也比较固定, XML中不仅包含了简单的API头文件信息, 还包含了相应API是否有显示等信息。

2.2 测试用例生成引擎

测试用例生成引擎是用来生成系统的C++用例, LISP用例, 以及C#用例的生成, 生成的是一个基本模板, 只需要进行简单的扩展就能生成实际的用例。

1) 用例的自动生成配置管理

用例自动生成需要对XML中的信息进行读取, 本文工具中实现了对应格式的XML解析工具。用例是划分在各个功能模块下的, 生成是可以按照功能模块的不同来生成对应的用例模板, 用例最终在执行时需要分层, 按模块来执行, 需要人工的对用例配置文件的XML进行更改配置。

2) 用例的自动生成策略

相对于某一功能的用例代码是有较大的重复区域的, 本文的系统对这不同的功能模块系同来生成用例的。首先需要判定属于哪个功能模块, 从功能模块数据存储的XML中读取功能模块数据。判定了功能模块, 用例生成引擎由不同的生成机制来生成不同的用例模板。测试人员可以根据经验来进一步的完善配置用例。由于测试的用例较多因此由测试人员进一步的完善用例是可行的[3]。

2.3 测试用例执行引擎

用例执行引擎, 通过分析用例生成引擎中的XML配置文件来完成对各个用例的测试配置, 然后需要制定运行待测用例的执行程序和执行环境。在执行引擎中还提供了调试模式可以方便测试人员及时的对生成的用例进行调试。

2.4 测试结果分析

测试的结果分析则是对调用了API应该达成什么样的预期效果的对比。测试的结果将被记录成为数据模式。方便结果的检测。用例红色在用例执行控制台标出测试出错的用例。输出错误的数据。供测试人员调试分析。

3 实例应用

这里仅给出一个简单的测试函数分析。

产生了包含API信息的XML, 然后根据测试数据源的XML生成对应的测试用例。生成的测试用例则需要实现对draw函数中的line, circle, rectangle功能实现调用。Size默认是small。也可以由测试人员进行调试。由于篇幅所限本文不给出完整的用例代码。

4 结论

本文实现了API测试的自动化框架的设计, 并且实现了针对具体软件的API自动化的测试。相比传统的API自动化测试框架, 本文提出的框架更加强调了自动与手动的结合。利用手动的灵活性好, 和针对性强的特点增强用例的测试功效。对软件的质量能提供更大的保证。

摘要:本文提出了一种利用手工测试经验的API自动化测试的框架设计。实现了API信息的提取、用例的自动生成、用例的自动执行以及对用例的执行结果分析。

关键词:Windows软件自动化测试,API测试

参考文献

[1]张磊, 王晓军.基于STAF框架下的自动化测试[J].计算机技术与发展, 2010, 3.

[2]崔红军, 饶若楠, 邵培南.一种API自动化测试工具的设计与实现[J].计算机工程, 2007, 2.

[3]Brian Marick, When Shoulda Test Be Automated.Reliable Software Technologies.

API测试 篇2

国家广播电影电视总局于2012年10月发布了NGB终端中间件技术规范,标准号为GY/T 267—2012[1]。 目前遵循该规范的NGB终端机顶盒已进入研发和生产阶段,接下来产品的测试和认证工作就显得尤为迫切和重要,因此判定产品是否符合中间件技术要求将是亟待解决的问题。

GY/T 267—2012[1]标准对NGB终端中间件的软件架构、协议栈、内容格式、应用信令、应用传输、应用支撑、安全机制、应用编程接口等各个方面的技术要求进行了规定。其中应有编程接口是该标准的核心内容, 检验终端产品是否符合中间件标准要求基本可通过对应有编程接口的全方位测试来加以验证。本文将简述中间件API接口要求,描述API接口的测试方法和测试方案,以典型测试单元为例,介绍测试用例的设计和实现方法。

1中间件API

NGB终端中间件软件架构示意见图1。

图1中的应用编程接口,即中间件提供给应用的接口。NGB终端中间件所能支撑的应用,按应用开发技术类型可分为NGB-J和NGB-H应用:

1)NGB-J应用是指采用Java编程语言开发应用的统称;

2)NGB-H应用是指 采用HTML,JavaScript, CSS等Web技术开发应用的统称[1]。

GY/T 267—2012标准[1]针对NGB-J应用和NGB-H应用分别定义了Java API和JS(JavaScript)API两套接口。

1.1 Java API

NGB终端中间件应为NGB-J应用开发提供三类Java接口,即Java基础接口、DAVIC扩展接口和NGB扩展接口[1]。

Java基础接口由SUN公司制定,是开发NGB-J应用的必要支撑。NGB终端中间件应支持CDC1.1.2 (JSR 218)/FP 1.1.2(JSR 219)/PBP1.1.2(JSR 217)和MIDP2.0(JSR 118)Java基础接口[1]。

NGB扩展接口由中间件标准定义,针对NGB应用需求扩展制定。NGB终端中间件应实现的扩展Java接口功能单元包括:单向广播网络接入单元、广播协议处理单元、媒体处理单元、应用引擎单元——频道搜索、 应用引擎单元——业务选择等[1]。

DAVIC扩展接口由数字音频视频委员会针对数字电视应用而制定。NGB终端中间件应支持的DAVIC 1.4.1p9定义的部分接口,主要包括MPEG/DVB传输流、 表格数据装载等处理的相关类和方法[3]。

1.2 JS API

NGB终端中间件应为NGB-H应用提供两类JS对象,即基础JS对象和NGB扩展JS对象[1]。

基础JS对象由W3C组织定义,是开发NGB-H应用的基础。NGB-H应用应支持的基础JS对象遵循W3CJS 1.5规范[1]。

NGB扩展JS对象由中间件标准定义,针对NGB应用需求扩展制定[1]。NGB-H应用应支持的扩展JS对象功能单元与Java接口基本相同。

2测试方案设计

2.1设计原则

NGB中间件API数量庞大,涉及业务逻辑繁多复杂,如果想完全模拟这些业务逻辑,需要设计一套基于白盒测试的模拟测试环境,通过调用API对业务逻辑的触发来验证API功能的完整性和稳定性。

白盒测试又称结构测试或逻辑驱动测试,主要是对程序模块进行如下检查:

1)对逻辑模块的所有独立的执行路径至少测试一遍;

2)对所有的逻辑判定,取“真”与取 “假”的两种情况都至少测试一遍;

3)在循环边界和运行界限内执行循环体;

4)测试内部数据结构的有效性[4]。

应用白盒测试的思想,通过测试用例设计和脚本的编写,即可实现对NGB中间件API接口的可用性和完整性进行更准确的测试。由于NGB-H和NGB-J应用编程接口的基础接口主要采用现有成熟技术,出现问题的可能性较小,所以测试用例主要针对中间件标准定义的扩展接口来进行设计。测试用例的设计原则为:

1)对API的调用,覆盖率达到100%;

2)对同一API接口测试涵盖正例和反例;

3)对API的调用,符合业务逻辑执行规律;

4)模拟NGB业务典型应用场景。

2.2设计方案

本测试实施过程将采用单元测试,以及自动化和手动相结合的方式。针对这种方式,测试用例的设计方案为:

1)采用模块化设计,模块划分以标准定义的功能单元为依据,包括单向广播网络接入单元、广播协议处理单元、双向宽带网络接入单元等;

2)设计两类测试用例,分别为自动化方式和手动方式,两种方式相互补充,使测试过程更趋向高效和完整。

2.2.1自动化方式

自动化方式测试用例主要按照以下要求进行设计:

1)测试程序运行后,将自动执行测试步骤和测试项;

2)API的输入参数为预先设定的固定值,参数一般取有效和无效两种情况;

3)测试结果的判定一般依据函数的返回值或者有无异常情况;

4)每个测试项执行完成后将自动显示测试结果 “PASS”或“FAIL”。

这类测试用例的优点是测试过程效率高,操作简单,测试结果准确且直观;不足之处是对测试条件有一定要求,不够灵活(如前端发送信号的调谐参数要与测试程序里的有效参数一致等),并且对一些须人工审核测试结果的API不能准确测试(如媒体播放API等)。

2.2.2手动方式

手动方式测试用例主要按照以下要求进行设计:

1)具有可视化的交互界面;

2)测试程序运行后,由人为触发测试项,须手动执行测试步骤;

3)API的输入参数须手动输入或选择;

4)正例测试和反例测试须由测试人员操作;

5)测试结果的判定须由测试人员依据输出结果、 返回数据或显示效果等来验证;

6)每个测试项的测试结果须测试人员记录 “PASS”或“FAIL”。

这类测试用例的优点是测试条件灵活(如前端发送信号的参数可随意修改等),可测试多种情况和场景,且便于测试一些须人为观察测试结果的API(如媒体播放API等);不足之处测试过程较长,操作稍显复杂,测试结果因由人工审核,所以对测试人员的专业要求较高(如须熟悉DVB/MPEG相关技术规范等)。

3测试用例实现

本章将以NGB中间件Java API接口的频道搜索模块和媒体处理单元为例,分别描述自动化方式和手动方式这两类测试用例的实现方法。

3.1频道搜索

频道搜索测试单元主要测试中间件标准Java应用引擎中的org.ngb.toolkit.channelscan包,该包的概要见表1。

频道搜索单元测试用例采用自动化方式,该单元设计为一个Xlet(一种J2ME应用模型)模型,其中每个子测试用例为1个函数测试1~2个API[5]。Xlet在启动运行后,自动执行每个子测试用例,测试过程如发现问题则输出错误位置和原因,并在执行结束前输出测试结果“PASS”或者“FAIL”。

频道搜索单元测试用例设计流程图见如图2所示, 其中图左侧为该测试单元的整体软件设计流程,右侧为子测试用例ChannelScanTC8(测试启动频道自动搜索功能)的软件设计流程。该测试单元所测接口和测试目的见表2。

3.2媒体处理

媒体处理单元主要测试中间件标准Java媒体处理单元中的org.ngb.media包,该包的概要见表3。

媒体处理单元测试用例采用手动方式,该单元设计为1个Xlet模型,其中每个子测试用例为一个测试项测试1~3个API[5]。Xlet在启动运行后,每个测试项将人为地按下界面中的按钮来触发执行,API调用后的返回数据、接收事件、异常情况或错误信息将输出打印在界面中,并且音视频的播放效果也将直接呈现,测试人员以此判断并记录测试结果“PASS”或者“FAIL”。该测试单元所测接口和测试目的见表4。

媒体处理单元测试用例设计流程图如图3所示,图中左侧为该测试单元的整体软件设计流程,右侧为子测试用例MediaTC3(测试启动媒体播放器功能)的软件设计流程。

4小结

API测试 篇3

API 作为全球最早、最成功地制定石油工业标准的学会之一, 其标准具有很高的国际影响和权威。API与中国石油工业的合作有着十分悠久的历史。早在1948年, 玉门油矿的机械工程师史久光先生, 第一次将美国石油学会 (API) 标准带回国内, 并在国内参照试行。经过半个多世纪的发展, 中国石油工业与API的合作愈发紧密。对中国的石油工业标准化工作都起到了重要的促进作用。

近年来, 中国石油装备制造业发展十分迅猛, 质量和技术水平也在不断提高, 为中国石油机械装备进入国际市场奠定了坚实的基础。目前, 中国已有近800家石油装备制造企业通过了API认证, 涉及70多项API标准。并且, 仍有300家左右的企业正在申请API认证。国内每年石油装备出口额近30亿美元。随着国内石油企业开展API认证和石油装备出口量的持续增加, 对API标准中文版的需求也越来越迫切。近年来, 随着石油企业不断进入国际市场以及石油装备出口量的持续增长, 对于API标准中文版的需求也更加迫切。

石油工业标准化研究所是中国石油工业领域唯一的且最具权威性的专业标准化研究机构, 是中国石油天然气行业不可或缺的重要技术力量。经过20余年在标准化方面的经验积累与沉淀, 石油工业标准化研究所不仅承担了多项国家和行业标准化技术委员会秘书处的工作, 同时汇聚了众多业内最优秀的人力资源, 是API标准中文版翻译出版发行的最佳合作伙伴。石油工业标准化研究所负责人表示, 与API签订授权协议, 是我国石油工业与API多年合作的继续, 也是双方新一轮良好合作的开始。

体验构建学校开放API 篇4

●引言

目前,众多教学管理系统的涌现,给学校教育带来便利的同时也带来了不少挑战。很多学校多个信息系统由于时间和开发公司的差异,造成各教育教学系统数据相互隔离,无法进行共享。未来,数据将是学校发展中最为重要的资源,目前这样的态势势必会让学校收集、分析、转移教学数据消耗大量的人力物力,还要面对其间产生的各种错误。因此,建设学校的新型架构数据中心,向学校所有应用提供基础数据,同时能接收学校所有应用所产生的数据,打通其中的数据通道,对数据进行有效整理和挖掘,是每所有现代教育情怀的学校的努力方向。建立自己的开放API就是一种有效的尝试,API是应用程序编程接口(Application Programming Interface)三个首字母的缩写,而开放API(Open API)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API开放出去,供第三方开发者使用。Amazon和e Bay等公司很早就有开放API,但是对应的数据往往集中在商品上,与人们的日常互联网应用有一定的距离。真正推动整个互联网开放的发端,应该算是Google在2005年开放Google Maps的API,目前谷歌公司提供的API相对完整,大部分谷歌服务都有相对应的API可以调用,下面我示范如何使用经典的Google Maps API将谷歌地图加入到网页中(如图1)。

考虑到PHP作为一种卓越的脚本语言,具有跨平台(可运行在UNIX、LINUX、Windows、Mac OS下)、低消耗(PHP消耗相当少的系统资源)、运行效率高等优点,本文中范例前后端网页也由PHP来说明:bj.php用来显示复选列表,用户只要选择目标位置,然后点击浏览地图,就会调用map.php,其中下页图2所示的bj.php第7~10行为PHP代码,定义了一个名为bj_address的数组来存放目标位置的地址信息,若景点个数多,此处也可以改用数据库存放相关数据。第13~19行为插入一个表单,里面包含有四个位置的复选列表和一个浏览地图按钮,各个项目的value属性被指定为各个位置的地址信息,当用户单击“浏览地图”按钮后,就会执行action属性指定的map.php表单处理页面。

我们再来观察下页图3所示的处理程序map.php,原本的地图功能,可能会让读者觉得程序代码很繁杂,其实不然!这主要是因为有了Google Maps API的帮助,其中第4行就是载入一个Google Maps API;第7~14行定义一个initialize函数,负责地图的初始化工作,建立属于google.maps的相关类,并调用第15~28行code Address()函数。第32行的value就是用户在bj.php页面中选中的目标位置的地址,使得第16行就是利用这个元素获取要在地图上做标记的地址。

在我们对开放API有了初步体验后,下面就构造了这样一个情境模式:为适应移动办公需要,对学校原有的Web邮件系统建立一个开放API,以方便移动应用开发公司调用作为范例来大致描述通过PHP连接原有数据库、生成JSON格式的开放API、调用开放API这一过程。

●过程示范

1.连接原有数据库

创建一个连接学校现有MS SQL SERVER的func.php,图4所示的关键代码表明其是连接到数据库服务器(10.8.32.89)上的SCHOOL_ERP的数据库。在该数据库中只需配给“apiuser”用户读取权限即可(注:PHP在高版本上需要使用sqlsrv扩展对Sql Server进行连接,安装过程略)。

2.构建JSON格式的开放API

用readmail.php来构建,下页图5截取了关键之处并做出解释,第3~4行为应用上一级目录下的func.php,设置输出到浏览器的类型和编码,第5行表示以GET方式获取提供的教师姓名传递给name变量,转换name的编码为gbk,由于学校原始数据库是微软SQL Server,当前编码为gbk编码,第10行是一句符合我们预期API调用的一条SQL查询语句,第11~13行是为了防止SQL注入,创建一个预处理语句,将$name的值绑定到上面$sql变量里的“?”部分,第14行定义了一个数组,用于保存后面输出的数据。第15~18行用while遍历数据,其中sqlsrv_fetch_array函数获取了执行后的结果,赋值到$result变量中,对数据中的send_dt数据进行处理,把处理好的数据保存到$arr数组里。第19~20行将获得的数据编码转换为utf8(防止输出时数据乱码),使用json_encode函数,封装获得的结果,并且输出。

这时就生成了一位教师的最近5封邮件信息的API接口“http://wx.ourschool.cn/cjcxcs/api/getemail.php”,在此我们可以尝试直接将某位教师的姓名作为name变量传递参数代入,向开放API发出GET请求。获得JSON格式的文本后,将文本按照JSON格式解码,如图6所示。

开放API的数据格式一般有JSON(Java Script Object Notation)和XML(EXtensible Markup Language)两种,考虑到简洁性和轻量性,我们通常会使用JSON,它方便人们进行阅读和编写,同时也方便了机器进行解析和生成。读者可以到http://json.cn网站了解和在线解析JSON结构(如图7)。

3.通过AJAX构建终端显示

通过使用AJAX(异步Java Script和XML)异步获取的方式调用上述的API,进而解析接口返回的JSON,就可以在相关Web App里显示用户页面(如下页图8)。

以上是根据学校现有的动态网站进行了接口开发,以方便后继应用进行开发,但还有一些情况是依靠学校现有条件无法进行后继开发的,最为典型的就是短信应用,如我校微信报修平台需要将维修信息发给修理师傅,除了微信通知外,为了能更及时传送,又加上一条运营商维修短信通知,功能如下页图9所示。

这时我们可到国内在线某API数据供应商处进行体验申请短信API。申请后,会在后台看到该API的配置服务信息,需要指出的是,商业化的API请求通常为HTTP GET方式,返回数据为JSON格式,为了防止API被滥用或恶意使用,要求每个API使用者都要申请一个API Key,每个API Key对应唯一的一个API使用者,下页图10中的App Key即为我校的一个API Key。

接下去可以创建一个短信模板,如“【报修平台】收到的新的来自#name#的报修信息,分类为:#app#”,#号中间的变量由开发者自行定义(如图11)。

然后根据图12的主要代码段创建一个短信通知页面,这样接到报修后可短信快速通知维修人员维修。第3行表示筛选出接收短信权限的对象,用户报修后,数据库会执行一条插入语句,进而触发到第10行的短信供应商API接口处传递数据,第13~16行为具体的传递数据(API KEY、发送号码、自定义的模板号和模板中显示的变量数据)。

API620低压储罐设计 篇5

关键词:API620,低压储罐,罐壁,承压环,锚固,设计

在许多情况下, 为了减少低沸点储液在储存时的蒸发损耗, 或因紧急排空等的需要, 常需提高储罐的储存压力。因此, 需要承压较高的储罐结构形式。这种情况下, 国内标准GB50341《立式圆筒形钢制焊接油罐设计规范》 (设计内压不大于18kpa) 就不在适用, 而美国石油学会规定的API620标准《大型焊接低压储罐设计和建造》适用于设计压力不高于0.105MPa的钢制焊接储罐的设计和制造。现以笔者承接的工程项目中5000m3轻石脑油低压拱顶储罐为例, 对低压储罐不同于常压储罐在罐壁、承压环、锚固等方面按照API620标准规范设计的要点进行简要介绍。

1 设计说明

5000m3轻石脑油的低压拱顶储罐主要设计条件如表1:

2 罐壁设计

2.1 分析

API620中罐壁的设计方法是自由体分析法, 自由体分析是确定作用在罐体上力的大小和方向的一种设计步骤。在选定的分析平面处, 罐体及罐内介质处于静力平衡, 假定有一个水平面在所考虑的高度横切罐体, 将剩余部分作为一个自由体进行分析, 由自由体静力平衡条件求出罐壁经向和周向单位力的大小和方向。并根据罐体材料的许用应力、焊缝系数确定计算壁厚, 再考虑厚度附加量最后圆整为罐壁的名义厚度。罐壁的设计过程如图1。

2.2 计算经向和周向单位力

根据API620, 由自由体静力平衡条件, 可得壳体的经向和周向单位力的计算公式,

式中:T1为在给定的水平面处, 壳体上纬向单位弧长的经向单位力, N/mm, 正值则表示受拉;T2为在给定的水平面处, 壳体上经向单位弧长的纬向单位力, N/mm, 正值则表示受拉;RC为储罐内半径, RC=10500mm

P为某在特定的载荷工况下, 作用在给定平面上的总压力, 单位为MPa。

式中:PL为在给定水平面处的介质液体的静压头, 单位为MPa;Pg为储罐液面上方的气相压力, MPa;W为储罐被给定平面剖分后, 作为自由体部分的及其所包含物料的总重力, N。F为所有内外部钢结构或支承等作用在自由体的力的垂直分力的总和, 当其产生的效果和自由体水平面上的压力P方向相同时, F与P的符号相同;否则, F与P的符号相反;NAt为所考虑平面上储罐内部的横截面积, mm2。

2.3 罐壁厚度计算

T=Max (T1, T2) , 对本罐而言, T2>T1

式中:[σ]t为设计温度下, 罐壁材料纯拉伸许用应力, MPa;φ为焊接接头系数, 取0.85;C为厚度附加量, mm;壁板分为8层, 以底层壁板为例:

当进行充液的时候

充水试验时

取两者中较大值并圆整后得t=24mm。各圈壁板厚度计算结果见表2。

式中:ρ为储液密度, kg/m3;g为重力加速度, m/s2。

3 罐顶--壳体连接节点及承压环的设计

由于储罐内压的作用, 顶部的经向薄膜应力的水平分量将向内推, 此推力在接头处产生环向压缩应力, 并由该处的承压结构来承担, 此承压结构简称为承压环。承压环应包括罐顶与罐壁连接处的部分罐壁与罐顶。在任何情况下, 连接处的罐壁和顶板厚度不应小于标准所规定的厚度, 承压环的承压区域面积必须要大于承压区域所需面积。

3.1 承压环的承压区域面积

本储罐选用承压环结构如图2所示, 构成抗压环有效面积的板宽按下式计算:

罐壁有效部分最大宽度Wc:

式中:Rc为罐壁与罐顶连接处的水平半径, 对本罐为10500mm;tc为顶部罐壁板的有效厚度, 对本罐为43.2mm。

故罐壁有效截面积As=17457.08mm2

罐顶有效部分最大宽度Wh:

Wh=0.6 (R2th) 1/2对本罐, 经计算Wh=515.86mm

罐顶板外伸部分有效宽度如图3, Lh=500mm

式中:R2为罐顶与罐壁连接处沿罐顶法线至罐的中心轴的距离, 对本罐为16800mm;th为罐顶板的有效厚度, 对本罐为44mm。

故罐顶有效截面积Ah=47234.29mm2。

罐顶与罐壁连接处实际有效截面积A=64691.37mm2

3.2 承压区域所需面积计算 (按压力试验工况计算)

罐顶与罐壁连接处罐顶经向单元力T1:

罐顶纬向单元力T2:T2=R2 (P-ω) /2=949.52N/mm

作用在通过承压环区域垂直横截面上的总环向力Q:

当Q为负值时, 表示承压环受压力作用, 这时有效承压环区域的水平投影方向的径向宽度, 应不小于罐顶与罐壁连接处罐壁水平半径的0.015倍。

承压区域所需面积Ac应取下式计算值中的较大值:

式中:[σ]t为设计温度下, 承压环材料纯拉伸许用应力, MPa;φ为焊接接头系数, 取0.85。

承压环垂直截面上, 所需的金属截面积 (不包括腐蚀裕量) 为Ac=62833.02mm2

Ac<A, 满足罐顶与罐壁连接处所需有效截面积要求。

如果不能满足Ac<A, 应考虑在承压圈有效范围内采取如下增强措施: (1) 在有效承压圈范围内增加顶板和壁板的厚度; (2) 在罐顶与罐壁相交处增设角钢、扁钢或水平设置环向加强圈; (3) 同时采取上述两种措施。

4 锚固的设计

对立式圆筒形钢制焊接低压储罐, 由罐内压和风载荷或地震载荷组合作用产生的升力不得超过罐壁和罐顶 (不包括腐蚀裕量) 以及由其支撑的构件的重力之和。否则, 应设置锚固或采取其他的平衡升力的措施。实际上, 判断是否设置锚固, 由设计内压产生的升举力、风弯矩地震弯矩产生的倾覆力、储液对罐顶的静压产生的升举力三个因素决定。

4.1 锚固计算及校核

在设计锚固时, 举升力应取1.25倍设计内压再加上作用在罐壁和罐顶垂直平面内的风载荷;如果存在有地震载荷, 升举力应取设计内压加上地震载荷。风载荷、地震载荷不应同时考虑。锚栓应符合表3要求:

(1) 内压产生的升力F=πD2pg/4=22859798N, 罐顶、罐壁及其所支撑构件总重G=232473N。因F>G, 故应设置锚栓。采用72个的M72锚栓 (锚栓的腐蚀裕量为6mm) , 材料为16Mn。每个锚栓截面积f=2781mm2, 故每个锚栓的应力 (F-G) / (nf) =113MPa小于锚栓材料的许用应力Sts=170MPa, 锚栓校核合格。

2设计压力与风载荷产生的净提升力为29218553.71N, 设计压力与地震载荷产生的净提升力为31714511.35N, 取两者中的大值, 应是设计压力加地震载荷作为举升力源, 计算得, 每个锚栓的应力为119 MPa<1.33 Sts=226 MPa, 锚栓校核合格。

(3) 储罐试验压力产生的净提升力为36020333N, 计算得, 每个锚栓的应力为142MPa<1.33 Sts=226 MPa, 锚栓校核合格。

4.2 锚栓座结构

由于本储罐罐径罐高较大, 升力较大因而作用于罐壁底部锚栓座的力矩较大。采用结构如图3.

5 结语

低压储罐设计与常压储罐相比, 关键在于罐壁、罐顶承压环和锚栓的设计。设计低压储罐罐壁厚度时, 可通过罐体自由体分析计算罐壁经向、周向单位内力, 进而通过公式计算确定罐壁厚度。承压环的设计主要是通过计算总环向力, 确定所需的承压区域面积, 选择推荐的承压环结构, 然后计算所选结构的承压区域面积, 使其大于所需的面积。设计锚栓结构时, 应根据外界载荷确定升举力, 判断是否大于罐顶、罐壁及其所支撑的构件的总重, 确定是否设置锚栓装置。

参考文献

[1]SY/T0608-2006, 大型焊接低压储罐的设计与建造.

[2]API Std620-2002, 大型焊接低压储罐设计与建造[S].

百度地图API应用数例 篇6

1 图文交互需求

在用文字介绍地理信息的同时, 配之于地图, 当用户在文字区将光标移到某个地理要素 (地名、道路、区域) 名称上时, 在地图上显示相应的标注, 光标离开即隐藏。一可给人于动感, 二可对相应地理要素形成直观的印象。

如介绍秀洲党校地理位置的文字为“秀洲党校位于嘉兴老城区中心, 南临市区主干道中山路, 西傍传统商业街建国路……”。希望是:

(1) 打开该网页时, 以醒目的标记标注“秀洲党校”的位置, 当光标移到“秀洲党校”文字上时, 标注产生一动画效果 (如闪烁、变色、淡入淡出等) 。

(2) 光标移到“嘉兴老城区”几字上时, 显示嘉兴老城区区域, 从而凸显党校在嘉兴市区的位置。光标离开时, 隐藏该区域。

(3) 当光标移到“中山路”或“建国路”的等文字上时, 分别显示中山路或建国路, 离开时隐藏之。

2 准备工作

要实现上述功能, 首先要在网页上添加地图;其次需获取地址、道路、区域的地理数据;三是将地址、道路、区域等在地图上标注出来;四是建立文字与地图的相互联系, 形成图文互动。

2.1 在网页上添加地图

(1) 将百度地图API导入网页:

(2) 布局网页。采用两列布局, 左列显示文字, 右列显示地图, 两列均用

元素定位, 其id属性分别为div Text, div Map。

(3) 创建并加载地图:

函数load Map () 为网页

元素load事件的处理函数, 使网页一打开即加载地图。函数中第一行, 创建一个地图实例, 并显示在id为div Map中

元素中;第二行调整地图的中心点和放大级数, 其中datas[0]为秀洲党校的地理坐标点 (后面说明) , 14为缩放级数, API规定此值在3-18之间。

2.2 获取地址的地理坐标

已知地名, 且百度地图数据库中有此地名, 可用地址解析类Geocode的get Point () 方法, 其原型为:get Point (address, callback, city) 。在已创建地图实例map的情况下, 可通过以下代码, 在网页上显示某地址的标注及地理坐标 (经、纬度) :

代码中的“div Result”为网页上以此为id的一个

元素。

如果上述方法无法获取, 则可用单击取点法。先为地图实例添加鼠标单击事件侦听器:

然后, 在事件处理函数中, 借助于单击事件参数, 获取单击位置的地理坐标点:

2.3 获取路径的地理坐标数组

如果所需路径是一条道路, 则可在该道路上取两点 (地理坐标点) , 用获取驾车路线方案的类Driving Route的search方法获取:

如:

复制所输出的各点经、纬度, 粘贴到js文件中, 即可组成该路径的坐标点数组。如果所求路径不是一条道路, 或上述方法所获取的路径不是所求的, 那只有用原始的单击取点法, 在路径的每个转折处单击, 获取每个转折点的地理坐标。

2.4 获取区域边界的地理坐标点数组

如果所求区域是一个县级或以上的行政区域, 则可用行政区域边界类Boundary的get () 方法。如:

如所求区域不是县级及以上的行政区域, 则需另觅它法:如单击取点法, 行政区域组合法 (长三角) , 路径组合法 (嘉兴老城区) 。

通过这些方法, 即可获取文字描述中各地址、道路、区域的地理坐标点、地理坐标点数组, 为便于调用, 将其按在文字中出现的次序放在一个数组datas中, 保存于一个名为mapdata.js文件中。另外, 再建一个全局数组marks, 用于存放各标注 (或覆盖物) 的引用。

3 应用举例

3.1 标注党校的地理位置

为了使网页打开时, 即可在地图上看到“秀洲党校”的标注, 还需在load Map函数 (2.1) 中添加几行, 以创建该标注:

如此添加标注, 虽然简便, 但难免形式单一, 信息量少, 可用以下方法之一改进:

(1) 自定义标注图标

其中, dh.gif是一幅保存于images目录下的20×20的党徽图片。

(2) 为标注添加标签

这里的“标签内容”可以是纯文本, 也可以是html文本, 后者如:"秀洲党校"。

Offset:为标签相对于标注点的偏移量。

(3) 使用开源库BMap Lib中的富标注类Rich Marker

这里的“内容”同上款一样, 既可为纯文本, 也可为html文本。当然要使用此类, 需下载该类的源代码, 并将其引用到网页。假设下载后保存在当前网站的js/Rich Marker.js, 则应在

标签后添加:

(4) 自定义覆盖物类Custom Overlay

当然, 要用Custom Overlay类, 也需引入该类的源代码, 即在

标签后添加

3.2 介绍党校周边环境

假设介绍文字为:“秀洲党校位于嘉兴老城区中心, 南临市区主干道中山路, 西傍传统商业街建国路, 中央商务区的江南大厦、戴梦得购物中心步行数分钟即至。”为了让地图动态地显示文字中划线的地理要素, 先将划线的文字置于元素中:

这里元素id的命名除第第一个秀洲党校“xzdx”外, 其余包含两个部分, 用下划线分隔, 前面部分表示类型, 分别取point (地点) 、route (路径) 、area (区域) 、scen (景点) , 后面部分是在描述文字中出现的序号, 对应mapdata.js文件中datas数组的索引。

接下来, 为元素绑定事件处理函数。先让鼠标在“秀洲党校”文字上时, 让相应标注闪烁:

再为元素绑定在鼠标上、鼠标离开的事件处理函数:

相应的事件处理函数为:

3.3 描述党校便利的市内交通

假设描述文字如下:

交通十分便捷, 距风景秀丽的南湖革命圣地仅1.6公里车程, 至南湖新渡口3.7公里, 至火车站车程仅1.2公里, 至火车南站 (高铁站) 车程仅12.7公里, 至汽车北站车程3.4公里, 至汽车南站 (客运中心) 车程9.5公里。

只需用类似南湖革命圣地的语句将划线文字置于元素中。id中的前半部分相同, 均取route, 后半部分编号依次为6、7、8、9、10、11。事件的绑定及事件处理函数同例2。

3.4 描述所在城市的位置及区位优势

描述文字:嘉兴市位于浙江省东北部、长江三角洲杭嘉湖平原腹心地带, 是长江三角洲重要城市之一。东临东海, 南倚钱塘江, 北负太湖, 西接天目之水, 大运河纵贯境内。市城处于江、海、湖、河交会之位, 扼太湖南走廊之咽喉, 与沪、杭、苏、湖等城市相距均不到百公里, 区位优势明显, 尤以在人间天堂苏杭之间著称。

这里“嘉兴市”、“东海”、“钱塘江”、“太湖”相应元素的id的前半部分为point, “浙江省”、“长江三角洲”相应元素的id的前半部分为area, 其余为route, 后半部分编号依次为是12-22。

3.5 显示市区主要景点

文字区显示为:

南湖景区:狮子汇、小灜洲、南湖、湖心岛、烟雨楼、会景园、纪念馆、揽秀园、壕股塔 (伍相祠) 。

古运河畔:…

相应的HTML代码如下:

这里用单击事件进行交互。不仅希望在单击上述景点名称时, 在地图上标注出该景点的位置, 而且还希望看到该景点的一幅或多幅图片以及该景点的简要介绍。多幅图片以左右滑动方式呈现。百度地图API虽没有提供该项功能, 但可借助于“信息窗口”实现。具体步骤如下:

(1) 搜集各景点的图片保存于scens目录下。

(2) 创建一个景点对象数组scen, 数组中的每个元素表示一个景点对象, 该对象有以下属性:

title:景点名称

position:景点的地理位置, 数据类型为BMap.Point

desc:景点描述

pics:景点图片文件名数组

names:景点图片简要说明数组

鉴于该数组内容较多, 单独存放于文件scenery.js中。

(3) 创建一个滑动显示图片的网页slide Pics.htm (这离题较远, 不赘述) , 该网页带一个参数ind, 表示景点序号。

(4) 在景点名称上单击的事件处理函数show Scen () , 该函数接收一个参数ind为景点序号, 其核心是创建并显示百度地图的信息窗口, 这个信息窗口的内容是以slide Pics.htm为源文件的

(5) 为元素绑定事件处理函数

其中show Mark函数见例2。

3.6 公交导乘

在网页上集成从各车站到党校的公交导乘和从外地到党校的驾车导航, 可免去用户再去地图网站搜索的麻烦, 提供一站式服务。

本例先看从各车站到党校的公交导乘。要获取公交路线规划方案, 需用百度地图API的Transit Route类。先创建一Transit Route实例, 再调用其search () 方法, search () 方法有两个参数, 分别用来指定起点和终点, 本例中, 终点是固定的为“秀洲区委党校”, 起点由

元素绑定事件处理函数:

摘要:使用地图API获取地理坐标、获取路径或区域边界的地理坐标数据、获取公交、自驾线路信息、在地图上添加标注、实现图文结合、互动。

2008年API管材类标准信息 篇7

套管、油管和管线管用螺纹脂推荐作法

Recommended Practice on Thread Compounds for Casing, Tubing, and Line Pipe

石油天然气工业——套管、油管和管线管用螺纹脂的评价与试验

Petroleum and Natural Gas Industries-Evaluation and Testing of Thread Compounds for Use with Casing, Tubing and Line Pipe

提供了高压环境下API圆螺纹、偏梯形螺纹套管、油管和管线管连接用螺纹脂适用性评价方法。该推荐作法中所列试验是在实验室条件下用来评价螺纹脂的临界使用性能。第2版, 2003年7月发布

API RP 5A5/ISO 15463

新套管、油管和平端钻杆现场检验推荐作法

Field Inspection of New Casing, Tubing, and Plain-end Drill Pipe

石油天然气工业——新套管、油管和平端钻杆现场检验

Petroleum and Natural Gas Industries-Field Inspection of New Casing, Tubing, and Plain-end Drill Pipe

给出了油井管现场检验和试验用具体要求和推荐方法, 包括现场检验经常用到的作法和技术, 某些作法亦适用于工厂检验。本标准涉及检验人员资质、检验方法及设备校准的描述、各种检验方法的标准化程序, 还涉及缺欠的评估和检验过的油井管的标记。本标准适用于油井管的现场检验, 不作为验收或拒收的依据。

第7版, 2005年6月发布

API Spec 5B

套管、油管和管线管螺纹的加工、测量和检验规范 (包括2004年3月补充1和1998年4月勘误)

Threading, Gauging, and Thread Inspection of Casing, Tubing, and Line Pipe Threads

包括API螺纹校对量规的尺寸和标记要求, 其它产品螺纹和螺纹量规, 以及管线管、圆螺纹套管、偏梯形螺纹套管和直连型套管连接用螺纹的检验仪器和方法。第15版, 将于2008年1季度发布

API RP 5B1

套管、油管和管线管螺纹的加工、测量和检验推荐作法 (包括2004年9月补充件)

Threading, Gauging, and Thread Inspection of Casing, Tubing, and Line Pipe Threads

包括按照规范5CT、5D和5L生产的套管、油管和管线管用螺纹的加工、测量和检验方法, 以及套管、油管和管线管用量规规格及鉴定。

第5版, 1999年8月发布

API RP 5C1

套管和油管的维护与使用推荐作法

Care and Use of Casing and Tubing

包括套管和油管的使用、运输、贮藏、搬运和修理。

第18版, 1999年5月发布, 2006年8月再次确认

API Bull 5C2

套管、油管和钻杆的使用性能公报

Performance Properties of Casing, Tubing, and Drill Pipe

包括API套管、油管和钻杆的抗挤压力、内屈服压力和连接强度。

第21版, 1999年10月发布

API Bull 5C3

套管、油管、钻杆和管线管性能公式和计算公报 (包括1999年4月15日补充1)

Formulas and Calculations for Casing, Tubing, Drill Pipe, and Line Pipe Properties

(includes Supplement 1, April 15, 1999)

提供了各种管子性能的计算公式, 以及与这些公式的推导和应用有关的背景信息。

第6版, 1994年11月1日发布

API RP 5C5/ISO 13679

套管和油管连接试验程序推荐作法

Recommended Practice on Procedures for Testing Casing and Tubing Connections

石油天然气工业——套管和油管连接试验程序

Petroleum and Natural Gas Industries-Procedures for Testing Casing and Tubing Connections

建立了石油天然气工业用套管和油管连接的最低设计验证试验方法和合格判据。这些物理试验是某一设计验证过程的一部分, 并为连接符合制造商声明的试验载荷和极限载荷提供了客观依据。

第3版, 2003年7月发布

API RP 5C6

管子焊接接头推荐作法

Welding Connections to Pipe

为管子接头在工厂或现场焊接提供了标准的行业作法。技术内容中包括对焊接工艺评定、焊工资格鉴定、材料、试验、成品焊接和检验的要求。另外, 包含了订货建议。

第2版, 2006年3月发布

API RP 5C7

油气井用挠性油管操作推荐作法

Coiled Tubing Operations in Oil and Gas Well Services

提供了挠性油管的设计及操作推荐作法。

第1版, 1996年12月发布, 2007年12月再次确认

API Spec 5CT/ISO 11960

套管和油管规范

Specification for Casing and Tubing

石油天然气工业——油气井套管或油管用钢管 (包括2006年4月勘误)

Petroleum and Natural Gas Industries-Steel Pipes for Use as Casing or Tubing for Wells

规定了钢管 (套管、油管、平端套管衬管和短节) 和附件的交货技术条件。它采用ISO 11960, 适用于符合API Spec 5B的下列接头:

短圆螺纹套管 (STC) ;

长圆螺纹套管 (LC) ;

偏梯形螺纹套管 (BC) ;

直连型套管 (XC) ;

不加厚油管 (NU) ;

外加厚油管 (EU) ;

整体接头油管 (IJ) 。

第8版, 2005年7月发布, 2006年1月1日生效

API Spec 5D

钻杆规范

Specification for Drill Pipe

包括第1和3组钻杆, 尤其是在标准目录和表格中给出代号和壁厚的钻杆。

第5版, 2001年10月发布, 2002年4月30日生效

API Spec 5L/ISO 3183

管线管规范

Specification for Line Pipe

石油天然气工业——管道输送系统用钢管

Petroleum and Natural Gas Industries-Steel pipe for pipeline transportation systems

详细说明了石油天然气工业管道输送系统用两种产品规范水平 (PSL 1和PSL 2) 无缝钢管和焊管的制造要求。该标准修改采用ISO 3183:2007 (石油天然气工业——管道输送系统用钢管) 。

第44版, 2007年10月1日发布, 2008年10月1日生效

API RP 5L1

管线管铁路运输推荐作法

Railroad Transportation of Line Pipe

提供适用于API Spec 5L中规格大于等于2 3/8in的管线钢管的铁路车厢运输。这些推荐作法涉及涂层管或非涂层管, 但不包括装载过程防止涂层不被破坏的作法。

第6版, 2002年7月发布

API RP 5L2

非腐蚀性气体输送用管线管内涂层推荐作法

Internal Coating of Line Pipe for Non-Corrosive Gas Transmission Service

提供了非腐蚀性天然气输送用内涂层。它仅限于新管在安装前内涂层的涂覆。

第4版, 2002年7月发布, 2007年12月再次确认

API RP 5L3

进行管线管落锤撕裂试验推荐作法

Conducting Drop-weight Tear Tests on Line Pipe

作为API Spec 5L的参考文献, 提供了用于进行落锤撕裂试验测量管线管出现裂纹或断裂韧性的一种推荐方法。

上一篇:网格聚类下一篇:他者形象