当前强人工智能已经有初步成果,甚至在一些视频识别、语言分析、棋类游戏等等单方面的能力达到了超越人类的水平,当前有大量的工具应用了人工智能,其中包括搜索和数学优化、逻辑推演。本文将介绍人工智能的基本概念和应用,以及如何快速调用相关API文档完成 API 自动化测试脚本。
你将了解到
1、人工智能基本概念
2、人工智能目前一些前沿应用信息
3、如何快速的根据人工智能的 API 文档完成 API 自动化测试脚本
1.人工智能基本概念
首先了解 :什么是人工智能?
人工智能(artificial intelLIgence),从英文词源上其实更好精确的理解。artificial:人造的东西,而根据维基百科的解释:capacity of logic,understanding,self-awareness,learning,emotional knowledge,reasoning,planning,creativity and problem sLISTving。
AI的核心问题包括建构能够跟人类似甚至超越的推理、知识、规划、学习、交流、感知、移动和操作物体的能力等。人工智能当前仍然是该领域的长远目标。当前强人工智能已经有初步成果,甚至在一些视频识别、语言分析、棋类游戏等等单方面的能力达到了超越人类的水平,当前有大量的工具应用了人工智能,其中包括搜索和数学优化、逻辑推演。
2.人工智能目前一些前沿应用信息
1.Google
2018年5月份 Google Assistant 中新增加的 Duplex,它可以自己给饭馆、发廊等商业店面打电话,帮用户预约时间。具体效果可以先看看 I/O 大会现场的
演示视频
在这两则真实电话录音中,Duplex 不仅用自然流畅的语音和电话另一头的人类完成了交流,对方根本没有意识到打电话来的居然是个「AI」,而且第二则录音中它还成功地处理了意料之外的发展状况,不仅理解了「无需预定」,还主动询问了等位的时间。实际上,这也是谷歌对 Google Assistant 的设计宗旨:
为用户节省时间,为用户把事情搞定(get THings done)。
2.Apple Inc.
2018年9月13日苹果发布新的产品,同时随新机发布的
最大亮点即是苹果一直强调的“最智能最强大”的芯片——A12。
[caption id="" aLIgn="aLIgnnone" widTH="760"]
苹果公司A12芯片[/caption]
神经网络引擎
内有八核机器学习处理器,每秒可执行5万亿次操作,速度比A11提高了9倍;非常高效,能够实时完成各种新事物;非常聪明,可以运行更复杂的功能,比如AR体验,并可以按要求快速找到目标照片。
苹果还在Core ML平台开放了神经网络引擎。
新的人工智能技术能够带来哪些用户体验:
后置摄像头AR——通过更快地检测场景中的平面,您可以直接进入沉浸式AR体验。
前置摄像头AR—— 应用程序可以使用TrueDepTH相机和A12 Bionic芯片创建丰富细致的背景并生成3D效果。
高级面部识别码——TrueDepTH相机和神经引擎共同进行识别功能——即使您戴上帽子、留了胡子或戴了眼镜,都可以被识别。
更生动的的Memoji——A12 Bionic和TrueDepTH相机共同跟踪50多个面部肌肉,使Memoji像您一样移动和反应。
3.NEC和Unisys公司合作架设
NEC高精确人脸识别系统
2018年8月30日 在美国纽约肯尼迪机场,NEC 导入了
人脸辨识系统「NeoFace」。在入境检查时,自动闸门(由 Unisys 公司架设)读取 ePassport 的脸部照片资料后,由闸门上的摄影机拍摄旅客的脸部照片并即时比对,能高度精准判定是否为同一人物。
目前美国纽约肯尼迪机场针对适用免签证计画的首次访美旅客,以及使用 ePassport 的美国籍居民,已开始运用本系统进行人脸辨识。
而随着人工智能的发展,很多技术公司会将他们的人工智能技术以 API 的形式开放给广大开发者,例如我们可以在百度的 AI 开放平台找到关于图像视觉技术、自然语言的 AI 接口
。作为不懂 AI 技术的开发者,人工智能 API 为我们提供了 AI 底层技术支撑。但当这类 API 出现问题时,一般我们是无法快速定位到问题所在的,这时则可以将接口测试托管到 EOLINKER 的平台,用平台查看报告显示的结果是否跟和预期的一样,避免 DEBUG 到最后发现问题定位在外部 API,浪费了大量的精力。
3.不用写代码,也能做好API的管理和测试
接下来就是将 API 存进我们接口管理文档,为了方便举例,我选用的是百度的图像搜索 API-人脸识别,假使我们要调用这个 API,根据规范文档,我们至少需要两个以上的接口,第一个是确定鉴权,也就是获取 Access Token,第二个才是人脸识别的 API。
1.在获取鉴权之前,需要先进入官网创建人脸识别应用,得到 API KEY 和 Secret Key,进而完成第一个接口--获取鉴权。
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图3.1 某平台获取API Key以及Secret Key图[/caption]
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图3.2 某平台鉴权机制[/caption]
2.这个机制看上去很复杂,但是在 EOLINKER 上,只需将请求 URL 数据按照格式填写入请求参数中即可:
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图3.3 EOLINKER鉴权API信息添加[/caption]
3.在返回参数填写我们需要的 token,方便图像搜索 API 使用,全部添加好之后点击测试按钮,鉴权信息就会显示出来了。我们需要的是鉴权信息的 access_token,可以看到返回结果内包含相应的内容:
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图3.4 EOLINKER成功返回示例[/caption]
到此,第一步获取鉴权信息的接口就完成了,那接下来就是第二步,实现图像搜索 API。
1.首先从官网找到图片搜索的 API 文档,查看需要填写的 API 信息,大家可以看到在官网的示例里面是需要代码去实现的,但使用 EOLINKER 则只需要把信息输入进相对应的框体内即可:
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图3.5 某平台人脸识别API文档[/caption]
2.根据相应的信息填写请求参数的参数名,参数类型,参数是否必填以及参数说明等内容,填写好之后的效果如下图:
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图3.6 EOLINKER实现图片搜索的API信息[/caption]
从图3.6可以看得出来,我们并没有接收到上一个 API 传来的 access_token。那么接下来,难题就来了,EOLINKER 有没有一个功能可以将上一个API 返回的参数,传给下一个参数并继续实现测试呢?
答案是有的,我们需要用到自动化测试的 UI 模式,详情请看下一章。
4.零代码,实现接口自动化测试
EOLINKER 强大的自动化测试功能,可以结合产品的逻辑数据进行测试。首先把 API 从已有的接口添加进入 API 自动化测试项目,然后进入图像识别接口,将
access_token 绑定到上一个接口的返回值(当不需要测试很多API 的时候,可以这样来做,不需要把鉴权放在前置用例,前置用例模式会在第五章提到)。
[caption id="" aLIgn="aLIgnnone" widTH="1615"]
图4.1 EOLINKER图像搜索API绑定鉴权信息[/caption]
回到自动化测试界面点击
测试全部,得到想要的信息,点击
查看详情 则可以看到相对应的详情报告,整个操作方便快捷。
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图4.2 EOLINKER自动化测试报告[/caption]
从报告中可以看到access_token已经传给了下一个接口,这样简单方便的操作有谁不喜欢呢?
5.添加前置用例,不重复调用接口实现自动化测试
EOLINKER 有前置用例功能,这个功能就是把用例添加进前置用例可以不重复调用这个接口,只需要根据信息拿到 access_token 即可。假如现在需要调用十几个 API,每个 API 前面都加上鉴权,重复的添加相同功能的 API 显然是非常不合理而且效率低下,只要使用了前置用例 API 就非常简便了。
1.首先需要添加前置用例,进入到前置用例界面,点击添加前置用例并输入前置用例名即可:
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图5.1 EOLINKER添加前置用例[/caption]
2.接着,点击进入前置用例后可以看到 EOLINKER 的代码模式界面,在这里只需要点击添加已有 API,将信息补充完整,添加如下两行代码,将鉴权信息传递给图像搜索 API:
resLISTt_api_2.respons=JSON.parse(resLISTt_api_2.response);
env.globalParams["access_token"]=resLISTt_api_2.response.access_token;
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图5.2 EOLINKER在code模式下绑定鉴权返回access_token[/caption]
3.最后,再进入第二个图像识别 API,在代码注入标签加入以下的一行代码,即可实现功能。
params["access_token"]=env.globalParams["access_token"];
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图5.3 EOLINKER人脸识别API代码注入[/caption]
4.点击测试,即可看到
acess_token 已经顺利传入给目标 API,至此使用前置用例模式测试 API 完成。
[caption id="" aLIgn="aLIgnnone" widTH="1500"]
图5.4 EOLINKER自动化测试报告[/caption]
最后总结:
我们对目前人工智能 API 进行了大概的介绍,并介绍了如何通过借助 EOLINKER 的功能达到快速测试的效果;
人工智能很多技术都可以应用在我们开发的软件中,如果利用得当,可以增加开发产品的受欢迎度;
同时大家可以在开发中去储备一些包括人工智能在内的 API 来协助自己的工作,工作中快速调用API,从而提高开发效率;保障项目按时按质按量的完成是所有人面对的挑战,所以用聪明的方法去工作是很重要的。
END...