CN104980313A - 测试可执行指令的系统和方法 - Google Patents
测试可执行指令的系统和方法 Download PDFInfo
- Publication number
- CN104980313A CN104980313A CN201510294055.2A CN201510294055A CN104980313A CN 104980313 A CN104980313 A CN 104980313A CN 201510294055 A CN201510294055 A CN 201510294055A CN 104980313 A CN104980313 A CN 104980313A
- Authority
- CN
- China
- Prior art keywords
- api
- api calls
- test
- response
- simulator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及测试可执行指令的系统和方法。除了别的以外,本文献讨论了测试应用编程接口(API)调用的方法,该方法包括接收标识与web服务及API调用相关联的schema的数据。多个示例实施例可关于访问与schema相关联的数据贮存器,以标识对应于API调用的API响应。在一些示例实施例中,基于确定API调用是否有效,消息被返回。示例消息可仿真来自web服务的API响应。
Description
本申请是申请日为2008年10月31日,申请号为200880131838.7,名称为“测试应用编程接口调用的方法、系统和响应仿真器”的发明专利申请的分案申请。
技术领域
该专利文献一般涉及软件测试,并且更具体地,但非限制性地,涉及用于测试可执行指令的系统和方法。
背景技术
软件开发人员通常在测试环境中测试代码,以便识别潜在的错误并确定代码是否可能在生产环境中是可操作的。
附图说明
附图(其并不必成比例)中,遍及多个视图,相似的标号描述本质上类似的组件。具有不同字母后缀的相似标号代表本质上类似的组件的不同实例。通过示例而非限制,图一般地阐释在本文献中所讨论的多个实施例。
图1是示出了根据示例实施例的测试可执行指令的示例机器的框图;
图2是示出了根据示例实施例的响应仿真器的扩大图的响应仿真器的框图;
图3是根据示例实施例的高级实体关系图,示出了可被在数据贮存器中维护的多种表;
图4示出了根据示例实施例的用于测试应用编程接口(API)调用的用户接口的实体模型;
图5是示出了根据示例实施例的用于测试API调用的示例方法的流程图;
图6是描绘了客户端-服务器系统的网络图,其中,示例实施例可被部署;
图7是示出了在示例实施例中作为互联的系统的一部分所提供的多个应用的框图;
图8是高级实体关系图,示出了可被在数据库中维护的多个表,其可被应用所利用并支持应用;
图9示出了在计算机系统的示例形式中的机器的图形表示,在该计算机系统中,用于致使机器执行此处所讨论的方法中的任意一个或多个的指令集可被执行。
具体实施方式
概述
多个示例实施例包括测试诸如应用编程接口(API)调用之列的可执行指令的响应仿真器。示例响应仿真器可接收数据,该数据标识了与web服务及API调用相关联的schema。为了确定API调用是否有效,响应仿真器可访问与schema相关联的数据贮存器,以标识对应于API调用的API响应。用于确定有效性的进一步标准可被在一些示例实施例中使用。响应于API调用并且基于确定API调用是否有效,响应仿真器可返回特定的消息(例如,API响应)。这种响应可仿真本质上与web服务将生成的API响应相类似的API响应,web服务接收并处理了API调用。注意,API调用可经由诸如桌面程序或web浏览器之类的软件用户接口被提交。在一些示例实施例中,响应仿真器和web服务可经由此处所描述的示例用户接口同时辅助对API调用的测试。
针对多个示例实施例,与由网络资源所维护的用于同样的API调用测试集的负载(没有响应仿真器)相比,针对API调用测试集的在联网的服务器和/或数据库资源上的负载可被显著减少。使用示例响应仿真器以用于测试而非使用专用网络资源可导致使用更少的硬件和/或软件组件,并由此,使用响应仿真器可帮助避免测试故障时间。
该概述意欲提供对本专利申请的主题的概述。其并不意欲提供对所要求的权利的排他性或穷尽性的说明。包括了详细的说明,以提供关于本专利申请的主题的进一步信息。
以下详细的说明包括对附图的参考,该附图形成了详细描述的一部分。图示出了与示例实施例一致的阐释图。这些此处还被称为“示例”的实施例被以足够详细的方式描述,以使得本领域技术人员能够时间所要求权利的主题。实施例可被组合、其他实施例可被利用、或者,可做出结构的、逻辑的和电的变更,只要其不偏离所要求的权利的范围内即可。因此,以下详细的说明并不应当以限制性的方式对待,并且,范围由所附权利要求和其等同物所限定。
在本文献中,如在专利文献中所惯常的,术语“一”或“一个”被使用,以包括一个或多于一个。在此文献中,除非另外指示,术语“或”被用于指非排他性的或,使得“A或B”包括“A而非B”、“B而非A”、以及“A和B”。另外,在此文献中所引用的所有出版物、专利和专利文献通过引用被全部结合于此,虽然它们被单独地通过引用而结合。如果在本文献中和那些通过引用被结合的文献中出现不一致的使用,则在一个或多个所结合的引用中的使用应当被认为是对本文献的使用的补充;针对不可调和的不一致,以在本文献中的使用为准。
示例实施方式
图1是根据示例实施例的示出了辅助对可执行指令的测试的示例机器102的框图100。图1被示出包括机器102,该机器可通信地与数据贮存器110相耦合。
机器102可包括使用处理器以执行指令的任意机器。在示例实施例中,机器102包括虚拟机(未示出),以执行一个或多个指令集。在虚拟环境中(例如,包括虚拟机、虚拟接口或其他虚拟设备),单个物理设备在其他硬件和软件看来可表现为多个逻辑设备(例如,多个虚拟设备)。机器102还被示出为包括用户接口104和响应仿真器106。
虽然未示出,但是,示例机器102可包括一个或多个硬件用户接口(例如,键盘、鼠标、其他输入设备),以使得用户输入将被机器102所处理的信息。在一些示例实施例中,一个或多个硬件用户接口(例如,显示器、扬声器或其他输出设备)可向用户呈现信息(例如,通过显示诸如用户指向、用户选项或任意其他可被呈现给用户的信息之类的输出信息)。在多个示例实施例中,一个或多个硬件用户接口显示诸如桌面程序接口之类的软件用户接口,以允许对与测试指令集(例如,API调用)相关联的信息的输入,并且,提供对与测试可执行指令集相关联的信息的显示。可执行指令涉及对在机器内部的处理器的操作。示例可执行指令可被包括在在如下之中:源码、机器语言、API、命令、可被应用、程序和/或处理器所执行的消息或其他指令。
一些示例实施例可包括显示包括浏览器程序接口的软件用户接口,以允许关于桌面用户接口的上述功能。以下将更详细地讨论接收和显示测试信息的示例桌面用户接口和示例浏览器程序接口。
示例响应仿真器106用来测试可执行指令的有效性。在多个示例实施例中,响应仿真器106可测试API调用,并且,生成将被传输到API调用的提交者的消息或响应。示例消息可仿真API响应,该响应可基于API调用由web服务所生成。web服务可包括软件系统,该软件系统被设计为在网络上支持互操作的机器到机器的交互。示例web服务可包括可在网络上访问并在宿主所请求的服务的远程系统上执行的web API。
图2是根据示例实施例的示出了响应仿真器206的框图200,该响应仿真器是响应仿真器106的扩大视图。响应仿真器206被示出为包括通信接口208、验证(validation)模块210、访问模块212和响应模块214。
示例通信接口208用于从用户接口104接收信息(例如,识别特定schema和/或API调用),并且将信息传输到访问模块212。schema可包括文献所遵从的规则集,以便根据该机制使文献被认为是有效的。示例机制包括可扩展的标记语言(XML)机制,在该机制下,文献在结构和内容方面受到限制。
示例通信接口208还可从响应模块214接收信息(例如,指示API调用的成功、错误或部分成功的信息),并且,将信息发送给图1的用户接口104。
访问模块212用来访问图1的数据贮存器110,以参考作为指令验证处理的一部分的数据。示例数据贮存器110可位于图1的机器102的内部,或在机器102的外部,只要不偏离所要求权利的主题即可。在数据贮存器110中所参考的数据可包括机制。在多个示例实施例中,机制可定义具体的API调用和对应的API响应。针对一些示例机制,数据贮存库110可包括表,该表被布置为将API调用和其一个或多个特定输入域与对应的API响应和其特定输出域相关联。数据贮存器110还可包括样本数据(例如,虚数据(dummy data)),以在一个或多个输出域中包括对API调用的仿真响应,该响应可在测试API调用的期间由图1的响应仿真器106(例如,由响应模块214)所生成。
验证模块210用来基于在数据贮存器110中所参考的数据来确定指令集是否有效。在示例实施例中,验证模块210基于访问模块212是否识别API调用的语法且API调用的特定数据域和/或数据值(例如,数据类型、操作数或参数、或其他输入)是否是有效的,以及/或基于有效性的任意其他标准,来确定所接收的API调用是否是有效的。取决于验证模块对API调用的有效性的确定,响应模块214可返回确认消息,该确认消息指示API调用的成功、失败或部分失败。
通信接口208、验证模块210、访问模块212和响应模块214中的每一个的功能科由软件、硬件、或软件和硬件的组合来实现。在一些示例实施例中,模块210、212和214是软件指令,该软件指令被存储在机器可读介质(未示出)上,并且,被与机器102相关联的一个或多个处理器(未示出)执行。
图3是高级实体关系图,其示出了根据示例实施例的可被维护在图1的数据贮存器110中的多个表300。示例表可被图1的响应仿真器106的图2的访问模块212所参考,以实现对诸如由特定机制所定义的API调用之类的指令的测试。
API调用表302可包括用于由机制所定义的每个API调用的记录、可包括用于每个API调用的有效输入域,以及对应于每个API调用的API响应的名字。
输入域表304可包括针对在机制中的所有API调用所定义的输入域列表。每个输入域可与一个或多个输入子域相关联、该输入子域的名字可被输入到输入域表304中。一些示例输入域和/或输入子域对于特定数据值(某些字符串、布尔操作符、数字或其他数据输入值)可以是有效的。
API响应表306可包括针对对应于由机制所定义的每个API调用的每个API响应的记录。在示例实施例中,API响应表可包括用于每个API响应的有效输出域,以及对应于每个API响应的API调用的名字。
输出域表308可包括用于在机制中所定义的所有API响应的输出域的列表。每个输出域可与一个或多个输出子域相关联,输出子域的名字可被输入到输出域表306中。一些示例输出域和/或输出子域对于特定数据值(某些字符串、布尔操作符、数字或其他数据输出值)可以是有效的。
图4示出了根据示例实施例的用于测试API调用的用户接口的实体模型400。实体模型400可代表图1的用户接口104的示例。实体模型用户接口400被示出为包括示出将显示的文本的多个帧、可选择以提供功能的帧,以及/或者包括带有输入信息的域的帧。
注意,实体模型接口400可作为桌面程序或web浏览器或其他用户接口的一部分被呈现给用户。在示例实施例中,通过将插件安装到桌面程序,图1的响应仿真器106可被集成到图1的用户接口104(例如,桌面程序)。针对一些示例实施例,图2的通信接口208用来从用户接口104接收API响应,并且,响应模块用来将消息或API响应返回到用户接口104。
示例帧402用来使得用户输入API类型(例如,XML API类型)和API命令(例如,GET_ITEM请求)。示例帧404用来使得用户输入诸如用户名和密码之类的凭证,用户可通过选择提交按钮406来提交凭证,以接收由帧408所显示的令牌。注意,不同形式的凭证可被请求并随同指向到远程API服务器的API调用(例如,以增强认证),但是,这种凭证可能未被请求或未随同指向图1中的响应仿真器106(其位于图1的机器102上)的API调用。
示例帧410可包括标签,该标签提示用户选择响应仿真器或API服务器,以提交API调用。示例帧412被检查,指示交易API响应仿真器被选择以测试API调用,而用于API_1和API_2服务器的帧414被示出为未被选择。虽然用于选择响应仿真器的一个帧412被示出,但是,用户接口可允许对与不同schema相关联的API调用的测试。例如,当例如来自每种美型的API的API调用将被提交以用于后续测试时,交易API和购物API中的每一个可被选择。针对一些示例实施例,响应仿真器和web服务可通过检查帧412(其包括响应仿真器框)和检查帧414中的一个或多个框来同时辅助对API调用的测试。
示例帧416可包括文本,该文本提示用户从列表选择特定的测试例。测试例可包括所保存的API调用,该调用用用户希望将来返回的多种编程语言中的任一个所写成。图1的示例用户接口104可辅助队在示例帧416中的测试例的保存。
示例帧418可包括选项卡,在该选项卡下,将被测试的API调用被输入。文本424是被输入到在帧418的请求文本选项卡下的域中的示例API调用。帧418的请求文本选项卡还可包括提交按钮425,当该提交按钮被选择时,其通过将请求指向到合适的响应仿真器或API服务器来启动对API调用的测试。将示出的示例帧420包括API调用的XML视图(例如,当请求文本将XML或其他协议封装在进一步的编程语言或协议中时,其将被使用),并且,示例帧422可包括输入值的列表,该输入值可适于正被提交的特定API调用。
帧426可包括选项卡,在该选项卡下,可显示对API调用的响应。文本432示出了对API调用的示例响应。帧428用来显示对应于呈现在帧426中的被标签为响应文本的码的XML码。帧430可包括选项卡,以显示包括在响应中的输出值以及/或针对特定API响应所定义的所有可能输出值。
图5是根据示例实施例的示出了用于测试API调用的示例方法500的流程图。示例方法500可由图2中的多种示例组件所实现。
在框502,示例方法500可包括接收API调用,以访问一个或多个web服务。针对一些示例实施例,API调用指示与一个或多个web服务相关联的schema。在示例实施例中,schema的统一资源名(URN)经由图1的用户接口104被与API调用一起(例如,如以下所描述的,通过点击图4的提交按钮425)提交。图4示出了示例API调用419和在XML表达421中编码的示例schema。schema信息和API调用可被发送到图1的响应仿真器106,而数据将被图2的通信模块所接收。在多个示例实施例中,API调用可包括一个或多个被输入值(例如,将被处理以产生输出值)所填充的输入域。
在框504,方法500可包括基于schema来验证API调用。如上所述,图2的访问模块212可接收在API调用中的schema信息,并且访问图1的数据贮存器110,以将在数据贮存器中的API条目与所接收的API调用相匹配。针对多个访问数据贮存器的示例实施例,其可包括基于schema来确定或识别的访问模块212、与schema相关联的数据贮存器110,以及在数据贮存器中确定或识别一个或多个数据库。一个或多个数据库可包括一个表或者进一步与schema相关联的多个表。
在示例实施例中,数据贮存器包括图3的与schema相关联的API调用表302,并且,包括输入在表中的与每个API调用相关的数据。访问模块212可在确定示例API调用表是否包括对应于所接收的API调用的API响应之后访问API调用表,访问模块212可将结果通知给验证模块210。
在图2中,验证模块210可基于不同的标准来确定API调用的有效性。针对示例实施例,验证模块210可基于API调用的语法和从访问模块212接收API调用对应于存储在图3的表302或表306中的API响应的指示来确定API调用是有效的。验证模块210可验证API调用的进一步的标准可包括,确定API调用的输入域被一个或多个值所填充,并且,API调用的输入域与有效的可扩展标记语言(XML)schema数据类型相关联。API调用的无效可基于API调用与schema的语法不一致而被确定。
在示例实施例中,输入域表可包括有效的XML schema数据类型的列表。参照图4,文本423示出了用于示例API调用文本424的示例输入域和输入域值。输入域值被示出为ItemID,而输入域值被示出为数字4036159998。
在示例实施例中,API调用可对应于指令,该指令可由web服务所执行以执行功能。在一些示例实施例中,功能的性能包括基于API调用的一个或多个输入域来生成API响应的一个或多个输出域的值。
在框506,示例方法500可包括从web服务提供仿真了API响应的所仿真的API响应。可替换地或另外,图2的示例响应模块214可生成消息,该消息指示API调用的成功、API调用的失败,或API调用的部分成功。基于成功的API调用,消息可另外包括被值所填充的一个或多个输出域。这种消息可仿真web服务可能已经生成的消息,并且,web服务已经接收了API调用。在图4中,文本437示出了在输出域值中的输出域。在文本437中的输出域被示出为相关ID,而输出域值被示出为零和连字符的字符串。输出域相关ID以及其他输出域可被存储在图3的输出域表308中。示例API响应文本432可本质上与通常由web服务所生成的API响应相类似。
注意,在涉及使用API的应用间的通信的环境中,所要求权利的主题可被用于通过向发送API调用的应用返回API响应来模拟应用的行为。示例响应仿真器106可记录对应于测试API调用的XML响应,使得无需针对每个测试API调用而重新计算XML响应,从而可容易地将XML响应用于将来的测试。在一些示例实施例中,对经常使用的API调用的响应可被组织,使得当API响应将被返回时,可被高效访问。用户或开发人员可访问所记录的XML响应,以将所测试的API调用(例如,被已知为功能性的API调用)合并到测试序列中,该测试序列可减少用于组成用于测试的API调用的序列所花费的整个时间段。
通过对上述示例实施例的实践,API测试处理可由测试者的示例机器所执行,并且可避免使用联网的服务器和/或数据库资源。可替换地或另外,对一些API调用的测试被网络资源(其被包括在网络商业系统中,并且,通信地与测试者的机器相耦合)执行,而其他API调用可在测试者的机器(例如,图1的机器102)上被图1的响应仿真器106所测试。针对多个示例实施例,与由网络资源所维护的用于同样的API调用测试集的负载(没有响应仿真器)相比,针对API调用测试集的在联网的服务器和/或数据库资源上的负载可被显著减少。
使用示例响应仿真器106而非在服务器上的专用应用来用于测试可帮助避免测试故障时间。例如,响应仿真器106可包括比应用服务器的指令相对更低复杂度的指令,其可导致后者更有可能由于其复杂度和/或多种其他原因(例如,开发测试网络资源离线、网络中断、软件崩溃、硬件故障等)中的任一个而变得不可访问。
图6是描绘客户端-服务器系统600的网络图,在该系统中,示例实施例可被部署。联网系统602以基于网络的市场或发布系统的示例形式经由网604(例如,因特网或广域网(WAN))向一个或多个客户端提供服务器侧的功能。例如,图6示出了web客户端606(例如,浏览器,诸如由在华盛顿州的雷德蒙德的微软公司所开发的Internet Explorer浏览器),以及执行在各自客户端机器610和612上的编程客户端608。
应用程序接口(API)服务器614和web服务器616被通信地耦合到一个或多个应用服务器618,并且分别向其提供编程接口和web接口。应用服务器618宿主一个或多个市场应用620和支付应用622。应用服务器618进而被示出为与一个或多个数据库服务器624相耦合,该数据库服务器辅助对一个或多个数据库626的访问。
市场应用620和支付应用622可存在于生产环境中,其中,应用620和622提供与实际的商业活动相关联的功能和服务,该实际的商业活动与价值和真实用户或实体的主题相关。可替换地或另外,市场应用620和支付应用622可存在于测试环境中(例如,对API调用的测试),该测试环境与虚构的商业活动相关联,该虚构的商业活动与虚构的主题和虚构的用户或实体相关。
市场应用620可向访问联网的系统602的用户提供多个市场功能和服务。类似地,支付应用622可向用户提供多个支付服务和功能。支付应用622可允许用户在账户中积累价值(例如,以商业货币,诸如,美元,或以自由货币,诸如“点”),然后,稍后赎回产品(例如,货物或服务)的所积累的价值,该产品经由市场应用620可被获得。虽然图6中所示出的市场应用和支付应用620和622二者形成了联网的系统602的一部分,但是,应当理解,在可替换的实施例中,支付应用622可形成与联网的系统602分离并且不同的支付服务的一部分。
另外,虽然在图6中所示的系统600利用客户端-服务器体系架构,但是,本主题当然并不限于这种体系架构,并且,可以同样在例如分布式或点对点的体系架构系统中找到应用。多种市场应用和支付应用620和622还可以被实现为独立的软件程序,其并不必须具有联网能力。
编程客户端608经由API服务器614所提供的编程接口访问由市场应用和支付应用620和622所提供的多种服务和功能。例如,编程客户端608可以是卖家应用(例如,由加利福尼亚的圣何塞的eBay公司所开发的TurboLister应用),以使得卖家以离线的形式在联网的系统602上创作和管理列表,并且,在编程客户端608和联网的系统602之间和自行批处理模式的通信。编程客户端608被示出为包括用户接口609、已存储的schema信息611,以及响应仿真器613,其可本质上与关于图1所描述的用户接口104、响应仿真器106和数据贮存器110相类似。
web客户端606可经由web服务器616所支持的web接口访问多种市场应用和支付应用620和622。如上所述,出于测试API调用的目的,示例web客户端606(例如,web浏览器)可在接口中使用,以提交API调用和相关的信息。
图6还阐释了第三方应用628,其执行在第三方服务器机630上,经由API服务器614所提供的编程接口具有对联网的系统602的编程访问。例如,第三方应用628可通过利用从联网的系统602所检索出的信息来支持一个或多个由第三方宿主的网站上的特征或功能。第三方网站例如可以提供一个或多个促销功能、市场功能或支付功能,这些功能由联网的系统602的相关应用所支持。
图7是示出了在一个示例实施例中被作为图6的联网的系统602的一部分所提供的图6的多个应用620和622的框图。应用620可被宿主在专用服务器机或共享服务器机(未示出)上,该服务器机被通信地耦合,以使能在服务器机之间的通信。应用自身被通信地彼此耦合(例如,经由合适的接口)并且被耦合到多种数据源,以便使得信息在应用之间传递,或者,使得应用共享和访问公共数据。应用还可经由图6的数据库服务器624来访问一个或多个数据库626。
在示例实施例中,为了测试API调用,当API调用被接收并且被应用620和622处理时,图6的编程客户端608可仿真由一个或多个应用620和622所生成的API响应。经由图6的用户接口609、API schema 611和响应仿真器613,对API响应的仿真可被允许独立于应用620和622。
联网的系统602可提供多个发布、列表和价格设置机制,从而,卖家可列表(或发布相关的信息)用于销售的货物或服务,买家可表达兴趣或指示希望购买这种货物或服务,并且,价格可针对关于货物或服务的交易被设置。为此,市场应用620被示出为包括至少一个发布应用700,以及一个或多个拍卖应用702,该拍卖应用支持拍卖格式的列表和价格设置机制(例如,英式、荷兰式、维氏(Vickrey)、中式、双倍、逆向拍卖等)。多种拍卖应用702还可提供多个支持这种拍卖格式的列表的特征,诸如,逆向价格特征,从而卖家可指定与列表和代理出价(proxy-bidding)特征相关的逆向价格,从而出价人可唤起自动的代理出价。
多个固定价格应用704支持固定价格列表格式(例如,传统的分类广告类型列表或目录列表)和收购类型列表。具体地,收购列表(例如,包括由加利福尼亚的圣何塞的eBay公司所开发的现在购买(BIN)技术)可与拍卖格式列表一起被提供,并且,使得买家可以以通常比拍卖的起拍价格高的固定价格购买货物或服务(其也可经由拍卖被提供以用于销售)。
商店应用706允许用户在“虚拟”商店中对列表进行分组,该虚拟商店可由卖家并用于卖家被品牌化和另外个性化。这种虚拟商店还可提供促销、奖励和特定于并个性化于相关卖家的特征。
信誉应用708允许交易的用户通过利用图6的联网的系统602来建立、健全和维护信誉,该信誉对潜在交易伙伴是可获得的,并且被公布给潜在的交易伙伴。例如,考虑在支持人对人交易的联网的系统602,用户可否则不具有通过其可评估潜在交易伙伴的可信赖度和信用的历史或其他参考信息。久而久之,信誉应用708例如允许用户通过由其他交易伙伴所提供的反馈来在联网的系统602中建立信誉。然后,其他潜在交易伙伴可参考这种信誉,以用于评估信誉和可信赖度的目的。
个性化应用710允许联网的系统602的用户个性化其与联网的系统602的交互的多个方面。例如,用户可通过利用合适的个性化应用710来创建个性化的参考页面,在该页面上,关于用户是(或已经是)一方的交易的信息可被查看。另外,个性化应用710可使得用户个性化列表以及其与联网的系统602和其他方的交互的其他方面。
联网的系统602可支持多个市场,该市场例如针对具体的地理区域被定制。联网的系统602的一个版本可针对英国被定制,而联网的系统602的另一版本可针对美国被定制。这些版本中的么一个可用作独立的市场,或可以是公共潜在市场的定制(或国际化)呈现。相应地,联网的系统602可包括多个国际化应用712,该国际化应用由联网的系统602根据预定标准(例如,地理的、人口统计学的或市场的标准)来定制信息(和/或对信息的呈现)。例如,国际化应用712可被用于支持针对多个地区性网站的信息的定制,该地区性网站由联网的系统602所操作,并且,经由图6的各自web服务器616可被访问。
对联网的系统602的导航可由一个或多个导航应用714所辅助。例如,搜索应用(作为导航应用的示例)可使能经由联网的系统602的对所公布的列表的关键字搜索。浏览应用可允许用户浏览多个分列表、目录或清单数据结构,根据这些分列表、目录或清单数据结构,列表可在联网的系统602中被分类。多个其他导航应用可被提供,以补充搜索应用和浏览应用。
为了使列表(经由联网的系统602可获得)尽可能在视觉上可增长见闻并且吸引人,市场应用620可包括一个或多个成像应用716,通过利用该成像应用,用户可上载图像,以用于包含在列表中。成像应用716还用作在所查看的列表中合并图像。成像应用716还可支持一个或多个促销特征,诸如,呈现给潜在买家的图像画廊。例如,卖家可支付额外的费用,以使图像被包括在图像画廊中以用于促销的条目。
列表创建应用718允许用户方便地创作关于他们希望经由联网的系统602所交易的货物或服务的列表,并且,列表管理应用720允许卖家管理这种列表。具体地,特定卖家已经创作和/或发布了大量的列表,而对这种列表的管理可呈现为一种挑战。列表管理应用720提供多个特征(例如,自动重列表、清单级监视等)以帮助卖家管理这种列表。一个或多个后期列表管理应用722还可帮助卖家处理通常发生在后期列表中的多个活动。例如,一旦完成由一个或多个拍卖应用702所辅助的拍卖后,卖家可希望留下关于特定买家的反馈。为此,后期列表管理应用722可向一个或多个信誉应用708提供接口,以便使得卖家方便地向信誉应用708提供关于多个买家的反馈。
争议解决应用724提供机制,从而使在交易方间引起的争议可被解决。例如,争议解决应用724可提供指导流程,从而使各方被指引经过多个步骤,以试图解决争议。如果争议不能经由指导流程多解决,则争议耳廓被升级到第三方中间人或仲裁人处。
多个欺诈避免应用726实现了欺诈检测和避免机制,以减少在联网的系统602中的欺诈的发生。
消息应用728负责生成消息并将消息传递给联网的系统602的用户,这种消息例如通知用户关于在联网的系统602中的列表的状态(例如,在拍卖处理期间向出家人提供“出高价”通知,或者,向用户提供促销和推销信息)。各自消息应用728可利用消息传递网络和平台中的任一个来将消息传递给用户。例如,消息应用728可经由有线网络(例如,因特网)、旧的电话服务(POTS)网络,或无线(例如,移动、蜂窝、Wi-Fi、WiMAX)网络来传递电子邮件(e-mail)、即时消息(IM)、短消息服务(SMS)、文本、传真、或语音(例如,IP语音(VoIP))。
推销应用730支持多种对卖家可获得的推销功能,以使得卖家能够经由联网的系统602来增加销售。推销应用730还操作多种可由卖家唤起的推销特征,并且,可监视并追踪卖家所使用的推销策略的成功。
联网的系统602自身或者一个或多个经由联网的系统602交易的各方可操作由一个或多个忠诚度/促销应用732所支持的忠诚度程序。例如,针对每次所建立的交易和/或由特定卖家所结束的交易,买家可挣得忠诚度或促销点,并且,可被提供奖赏,所积累的忠诚度点可被赎回。
在一些示例实施例中,一个或多个响应仿真应用734可被包括在应用620和/或622中,以模拟或仿真来自上述一个或多个其他应用700到732的响应。在这种示例实施例中,API调用可经由图6的客户端机器610和/或612被提交给响应仿真器734,以通过利用图6的应用服务器618、数据库服务器624和数据库626来测试通常由其他应用700到732所接收和处理的API调用。利用一个或多个响应仿真应用734而非多个其他应用可导致资源保持,因为更少的应用服务器618、数据库服务器624和数据库626可被用于仿真API响应。
图8是高级实体关系图,其示出了可被在数据库626中维护的多个表800,并且,表可被图6的应用620和622所使用且支持这些应用。用户表802包括用于图6的联网的系统602的每个已注册用户的记录,并且,可包括关于每个这种已注册用户的标识符、地址和金融票据信息。在联网的系统602中,用户可作为卖家、买家、或二者。在一个示例实施例中,买家可以是已经积累了价值(例如,商业货币或自有货币)的用户,并且相应地,能够针对由联网的系统602所提供的用于销售的条目交换所积累的价值。
表800还包括条目表804,其中,用于货物和服务的条目记录被维护,该货物和服务经由联网的系统602可被获得,或已经经由联网的系统被交易。在条目表804中的每个条目记录还可被链接到在用户表802中的一个或多个用户记录,以便将卖家和一个或多个实际的或潜在的买家与每个条目记录相关联。
交易表806包括用于每个交易(例如,购买或销售交易)的记录,该交易与条目相关,用于该条目的记录存在于条目表804中。
订单表808被订单记录所填充,每个订单记录与订单相关联。每个订单进而可与一个或多个交易相关,用于该交易的记录存在于交易表806中。
在出价表810中的每个出价记录与在联网的系统602处所接收到的出价以及由图7的拍卖应用702所支持的拍卖格式列表相关。在一个示例实施例中,反馈表812被图7的一个或多个信誉应用708所利用,以构建和维护关于用户的信誉信息。历史表814维护了用户已成为一方的交易的历史。一个或多个属性表816记录关于条目的属性信息,用于该条目的记录存在于条目表804中。仅考虑这种属性的单个实例,属性表816可指示与特定条目相关联的货币属性,该货币属性标识了如卖家所指定的用于相关条目的价格的货币。
如图3所述,响应仿真器表可包括API调用表302、输入域表304、API响应表306,以及输出域表308。响应仿真表还可包括将被输入到所仿真的API响应的输出域中的样本数据。
图9示出了以计算机系统900的示例形式的对机器的图形呈现,在该计算机系统中,用于致使机器执行此处所描述的任意一个或多个方法的指令集可被执行。在可替换的实施例中,机器用作单独设备或可以与其他机器相连接(例如,联网)。在联网的部署中,机器可在服务器-客户端网络环境中用作具有服务器能力的机器或具有客户端能力的机器,或者,在点对点(或分布式)网络环境中用作对等点机器。机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、网络路由器、交换机或桥、或任意能够执行(顺序的或其他)指令集的机器,该指令指定将由该机器所进行的动作。另外,虽然仅示出了单个机器,但是,术语“机器”还应被用于包括任意机器的组合,该机器单独地或一起执行指令集(或多个集),以执行此处所讨论的任意一个或多个方法。
示例计算机系统900包括处理器902(例如,中央处理单元(CPU)、图形处理单元(GPU)或二者)、主存储器904和静态存储器906,其经由总线908彼此通信。计算机系统900还可包括视频显示单元910(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统900还包括字母数字输入设备912(例如,键盘)、光标控制设备914(例如,鼠标)、磁盘驱动单元916、信号生成设备918(例如,扬声器),以及网络接口设备920。
磁盘驱动单元916包括机器可读介质922,在该机器可读介质上,存储了一个或多个指令924的集合(例如,软件),该指令体现了此处所描述的任意一个或多个方法或功能。在由计算机系统900所进行的执行期间,指令924还可完全或至少部分地贮存于主存储器904和/或处理器902中,主存储器904和处理器902也组成机器可读介质。
指令924还可经由网络接口设备920在网络926上被发送或接收。虽然在示例实施例中机器可读介质922被示出为单个介质,但是,术语“机器可读介质”应当被认为是包括存储一个或多个指令集的单个介质或多个介质(例如,中央的或分布式的数据库,以及/或相关联的缓存和服务器)。术语“机器可读介质”还应当被认为是包括能够存储、编码或实施用于由机器所执行的指令集的任意介质,该指令集致使机器执行本主题的任意一个或多个方法。相应地,术语“机器可读介质”应当被认为包括但不限于固态存储器、光介质和磁介质,以及载波信号。
因此,已经描述了用于测试可执行指令的方法和系统。以上的描述意欲是阐释性的,而非限制性的。例如,上述实施例(或其一个或多个方面)可被用于彼此组合。在回顾以上描述之后,其他实施例对与本领域技术人员而言是显然的。因此,权利要求的范围应当参照所附权利要求以及这种权利要求所使之有权利的等同物的完整范围而被确定。在所附权利要求中,术语“包括”和“在其中”被用作是“包含”和“其中”的各自的简明英语的等同物。在以下的权利要求中,术语“包括”和“包含”也是可扩充的,即,在这种术语之后,在权利要求中包括那些所列出的元件以外的元件的系统、设备、物品或处理仍被认为是落在该权利要求的范围之内。另外,在以下的权利要求中,术语“第一”、“第二”和“第三”等仅被用作标签,并且,并不意欲在其对象上施加数字要求。
摘要被提供,以遵从1.72(b)的37C.F.R.,其要求摘要允许读者快速地确定技术公开的本质。以如下的理解,摘要被提交:其将不被用于解释或限制权利要求的范围或意义。在以上详细的描述中,多个特征也可被组合以使公开成流线型。这不应当被解释为意欲使未要求权利的所公开的特征成为任意权利要求的核心。而是,有创造性的主题可在于少于特定所公开的实施例的所有特征中。因此,以下的权利要求由此被合并到详尽的描述中,每个权利要求作为单独的实施例存在。
Claims (20)
1.一种测试应用编程接口(API)调用的方法,包括:
通过响应仿真器接收标识schema及测试API调用的数据以访问web服务,所述schema包括定义具体的API调用和与所述web服务相关联的对应的API响应的schema信息;
搜索与所述web服务相关联的数据贮存器以确定由所述schema信息定义的所述测试API调用是否具有对应的API响应;以及
基于所述对应的API响应提供与所述web服务相关联的仿真的测试API响应。
2.如权利要求1所述的方法,其中所述仿真的测试API响应代表由所述响应仿真器接收的被传输到所述测试API调用的提交者的消息。
3.如权利要求2所述的方法,其中所述仿真的测试API响应与具有样本数据的输出域相关联。
4.如权利要求2所述的方法,其中所述消息基于所述测试API调用的对应的API响应指示所述测试API调用的成功、失败或部分失败。
5.如权利要求1所述的方法,其中所述搜索与所述web服务相关联的数据贮存器以确定由所述schema信息定义的所述测试API调用是否具有对应的API响应包括:
搜索包括在schema中为对应的API响应定义的输出域的列表的输出域表。
6.如权利要求1所述的方法,其中所述搜索与所述web服务相关联的数据贮存器以确定由所述schema信息定义的所述测试API调用是否具有对应的API响应包括:
访问所述数据贮存器以将数据贮存器中的条目与所接收的测试API调用相匹配。
7.如权利要求1所述的方法,还包括:
基于在所述数据贮存器中所参考的数据来确定所述测试API调用内包括的指令集是否有效。
8.一种存储指令的非暂态机器可读介质,当所述指令通过至少一个处理器被执行时,执行测试应用程序接口(API)调用的方法,所述方法包括:
通过响应仿真器接收标识schema及测试API调用的数据以访问web服务,所述schema包括定义具体的API调用和与所述web服务相关联的对应的API响应的schema信息;
搜索与所述web服务相关联的数据贮存器以确定由所述schema信息定义的所述测试API调用是否具有对应的API响应;以及
基于所述对应的API响应提供与所述web服务相关联的仿真的测试API响应。
9.如权利要求8所述的非暂态机器可读介质,其中所述测试API调用对应于可由所述web服务执行的用于执行功能的指令。
10.如权利要求8所述的非暂态机器可读介质,其中提供所述仿真的测试API响应包括生成至少一个被值填充的输出域。
11.一种测试应用编程接口(API)调用的响应仿真器,所述响应仿真器包括:
通信接口,所述通信接口被配置为从用户接口接收标识schema及测试API调用的数据以访问web服务,所述schema包括定义具体的API调用和与所述web服务相关联的对应的API响应的schema信息;
验证模块,所述验证模块与所述通信接口通信耦合,并且被配置为搜索与所述web服务相关联的数据贮存器以确定由所述schema信息定义的所述测试API调用是否具有对应的API响应;以及
响应模块,所述响应模块与所述验证模块和所述通信接口通信耦合,并且被配置为基于所述对应的API响应提供与所述web服务相关联的仿真的测试API响应。
12.如权利要求11所述的响应仿真器,其中所述测试API调用包括至少一个被值填充的输入域。
13.如权利要求12所述的响应仿真器,其中所述验证模块被配置为基于检验以下至少一个来确定所述测试API调用是有效的:
所述输入域被至少一个值填充;以及
所述输入域与有效的可扩展标记语言(XML)schema数据类型相关联。
14.如权利要求11所述的响应仿真器,其中所述测试API调用对应于可由所述web服务执行的用于执行功能的指令。
15.如权利要求11所述的响应仿真器,其中所述验证模块被配置为基于所述schema的语法来验证所述测试API调用。
16.如权利要求15所述的响应仿真器,所述响应模块被配置为基于所述测试API调用和所述schema的语法的比较来指示所述测试API调用的失败或部分成功。
17.如权利要求11所述的响应仿真器,其中所述通信模块被配置为经由万维网(WWW)从web浏览器接收所述测试API调用,并且所述通信模块进一步被配置为经由WWW将所述测试API调用的失败或部分成功的指示返回给所述web浏览器。
18.如权利要求11所述的响应仿真器,其中所述通信模块被配置为经由万维网(WWW)从桌面程序接口接收所述测试API调用,并且所述通信模块进一步被配置为经由WWW将所述测试API调用的失败或部分成功的指示返回给所述桌面程序接口。
19.如权利要求11所述的响应仿真器,其中所述响应模块被配置为生成包括至少一个被值填充的输出域的所述仿真的API响应。
20.如权利要求11所述的响应仿真器,其中所述响应仿真器经由将插件安装到桌面程序中而被集成到所述桌面程序,其中所述桌面程序被包括在用户接口中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200880131838.7A CN102204167B (zh) | 2008-10-31 | 2008-10-31 | 测试应用编程接口(api)调用的方法、系统和响应仿真器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880131838.7A Division CN102204167B (zh) | 2008-10-31 | 2008-10-31 | 测试应用编程接口(api)调用的方法、系统和响应仿真器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104980313A true CN104980313A (zh) | 2015-10-14 |
Family
ID=54288275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510294055.2A Pending CN104980313A (zh) | 2008-10-31 | 2008-10-31 | 测试可执行指令的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104980313A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133163A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 一种验证描述类api的方法与设备 |
CN109117360A (zh) * | 2017-06-26 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 一种离线处理业务数据的方法和装置 |
CN110177076A (zh) * | 2019-04-16 | 2019-08-27 | 凯通科技股份有限公司 | 面向多协议多类型设备接入方法、电子设备及存储介质 |
CN110352427A (zh) * | 2016-12-30 | 2019-10-18 | 英国卡米洛要约公司 | 用于收集与网络化环境中的欺诈性内容相关联的数据的系统和方法 |
CN112154420A (zh) * | 2018-05-30 | 2020-12-29 | 微软技术许可有限责任公司 | 自动智能云服务测试工具 |
CN112559463A (zh) * | 2020-12-18 | 2021-03-26 | 杭州数梦工场科技有限公司 | 压缩文件处理的方法及装置 |
CN113923134A (zh) * | 2021-10-08 | 2022-01-11 | 广州博冠信息科技有限公司 | 一种接口测试方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589446A (zh) * | 2002-01-07 | 2005-03-02 | 液体空气乔治洛德方法利用和研究的具有监督和管理委员会的有限公司 | 增强用户服务的集成供气系统和计算机网络 |
CN1716264A (zh) * | 2004-06-30 | 2006-01-04 | 国际商业机器公司 | 利用控制程序信息注释并呈现系统踪迹的方法和系统 |
CN1848774A (zh) * | 2005-04-11 | 2006-10-18 | 华为技术有限公司 | 一种远程调用通信组件的系统及方法 |
US20070038890A1 (en) * | 2005-08-11 | 2007-02-15 | Microsoft Corporation | Configurable system and methods for writing and executing test components |
US20070078950A1 (en) * | 2002-06-13 | 2007-04-05 | Salesforce.Com, Inc. | Offline web services api to mirror online web services api |
-
2008
- 2008-10-31 CN CN201510294055.2A patent/CN104980313A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589446A (zh) * | 2002-01-07 | 2005-03-02 | 液体空气乔治洛德方法利用和研究的具有监督和管理委员会的有限公司 | 增强用户服务的集成供气系统和计算机网络 |
US20070078950A1 (en) * | 2002-06-13 | 2007-04-05 | Salesforce.Com, Inc. | Offline web services api to mirror online web services api |
CN1716264A (zh) * | 2004-06-30 | 2006-01-04 | 国际商业机器公司 | 利用控制程序信息注释并呈现系统踪迹的方法和系统 |
CN1848774A (zh) * | 2005-04-11 | 2006-10-18 | 华为技术有限公司 | 一种远程调用通信组件的系统及方法 |
US20070038890A1 (en) * | 2005-08-11 | 2007-02-15 | Microsoft Corporation | Configurable system and methods for writing and executing test components |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133163A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 一种验证描述类api的方法与设备 |
CN110352427A (zh) * | 2016-12-30 | 2019-10-18 | 英国卡米洛要约公司 | 用于收集与网络化环境中的欺诈性内容相关联的数据的系统和方法 |
CN109117360A (zh) * | 2017-06-26 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 一种离线处理业务数据的方法和装置 |
CN112154420A (zh) * | 2018-05-30 | 2020-12-29 | 微软技术许可有限责任公司 | 自动智能云服务测试工具 |
CN112154420B (zh) * | 2018-05-30 | 2024-04-30 | 微软技术许可有限责任公司 | 自动智能云服务测试工具 |
CN110177076A (zh) * | 2019-04-16 | 2019-08-27 | 凯通科技股份有限公司 | 面向多协议多类型设备接入方法、电子设备及存储介质 |
CN112559463A (zh) * | 2020-12-18 | 2021-03-26 | 杭州数梦工场科技有限公司 | 压缩文件处理的方法及装置 |
CN112559463B (zh) * | 2020-12-18 | 2023-08-25 | 杭州数梦工场科技有限公司 | 压缩文件处理的方法及装置 |
CN113923134A (zh) * | 2021-10-08 | 2022-01-11 | 广州博冠信息科技有限公司 | 一种接口测试方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102204167B (zh) | 测试应用编程接口(api)调用的方法、系统和响应仿真器 | |
CN108334387B (zh) | 动态界面渲染方法及装置 | |
US8332275B2 (en) | Method and apparatus to facilitate a transaction within a network-based facility | |
US11579891B2 (en) | Mobile service applications | |
US8196813B2 (en) | System and method to allow access to a value holding account | |
US7860784B2 (en) | Method and system for user payment account management | |
US20050171842A1 (en) | Method and system for incentivizing the promotion of a payment service | |
NL2004646C2 (en) | Method and system for payment of a network-based marketplace transaction. | |
CN102812451A (zh) | 软件应用测试 | |
KR20120128661A (ko) | 위젯 프레임워크, 실시간 서비스 결합, 및 실시간 리소스 집계 | |
JP2010537280A (ja) | 従来の小売りに適する電子商取引の方法、システム、及び装置 | |
CA2995355C (en) | Order management and processing using a distributed commerce platform | |
CN104980313A (zh) | 测试可执行指令的系统和方法 | |
US20020038256A1 (en) | Transactional control system | |
US20230262043A1 (en) | Hidden line property of online content to inhibit bot activity | |
AU2010292908B2 (en) | Monetization of interactive networked-based information objects | |
US20090192911A1 (en) | Payment redirection for online transactions | |
US10311506B1 (en) | System and method for e-commerce accessibility | |
US20100121649A1 (en) | Methods and systems for user registration | |
US20220198036A1 (en) | Systems and methods for facilitating protecting recipient privacy | |
US11470028B1 (en) | System and method for adding interactivity and dynamic data to e-commerce emails | |
KR102498521B1 (ko) | 메타버스 기반 가상 오피스 서비스 제공 시스템 | |
US20230342838A1 (en) | User validation and dynamic revision of storefronts | |
Ameh | DESIGN AND IMPLEMENTATION OF A WEB BASED SHOPPING MANAGEMENT SYSTEM | |
Agbedo | DESIGN AND IMPLEMENTATION OF WEB BASED SYSTEM FOR INTERNET BANKING |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20151022 Address after: American California Applicant after: EBAY INC Address before: American California Applicant before: Electonic Bay |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151014 |
|
WD01 | Invention patent application deemed withdrawn after publication |