如何从零开始玩转接口测试?
Posted 软件测试培训
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从零开始玩转接口测试?相关的知识,希望对你有一定的参考价值。
顾翔老师作品《软件测试技术实战 设计、工具及管理》
http://detail.youzan.com/show/goods?alias=3erp1xpd7hmoh&from=wsc&kdtfrom=wsc&sf=wx_sm
店铺二维码:
啄木鸟软件测试培训网:www.3testing.com
本文来自:http://www.51testing.com
1、51Testing: 邓老师您好,很荣幸今天能与您进行一次深入的交流,您有多年大型项目测试经验,在多年的项目管理和测试中是否遇到过哪些难题?又是如何克服的?
回答:您好,非常荣幸能够参与这次专访,在多年的项目管理工作中,我遇到的难题主要还是测试进度、测试质量的把控以及关于团队成员的成长的问题。针对这些问题,进度可通过每日日报汇总中,各项目组的测试进度以及bug提交情况了解到,也可配合各测试工具比如禅道中每日用例的执行情况,从侧面进行了解;测试质量需要从基本抓取,测试用例编写,评审以及一整套测试流程把控测试质量,以及与项目组成员进行沟通了解:产品、开发;测试成员的成长:每周定期组织技术分享,团队成员轮流参与,输出PPT以及视频文档,将分享结果记入绩效考核,从侧面培养学习的激情。
2、51Testing: 您前面讲到团队成员能力的提升,现在越来越多测试人员会在工作之余学习新的技能提升自己。现在接口测试十分热门,有几个问题想替想要学习接口测试的童鞋请教一下您:(1)测试新手要如何做好接口测试?(2)没有代码基础可以学会接口测试吗?(3)接口测试的测试用例要如何设计?(4)接口测试跟其他测试的有何不同?
回答:(1)测试新手要做好接口测试首先要了解协议以及协议的请求方式,了解接口间的数据传递,业务流程。
(2)没有代码基础也可以通过第三方工具进行接口测试。
(3)接口测试用例应考虑各参数的传递,比如传入的字符为int,在测试过程中充分考虑到该参数的特殊情况,比如:为空,传入非int型、边界值、各传入间的参数组合等等,检测接口返回数据的准确性,当然也需要考虑接口性能及安全方面。
(4)接口测试重点是检测数据间的传递以及系统间的模块与模块间相互逻辑依赖关系。接口测试的方法有很多,比较常见的是通过一些接口测试工具来实现接口数据的传递,也有编写代码来实现数据传递,以上都是可以在没有客户端界面的情况下做的,但需要对接口的实现比较熟悉。另外其实还有别的方式,比如在网络中将接口数据调包修改,或者以修改客户端的方式达到某些目的,且非常真实有效,最终达到测试的目的,找出程序的错误。
3、51Testing: 这样听着接口测试也是不是特别抽象,您能再和我们说说做接口测试的流程一般是怎么样的?如果要做Android端的接口测试,需要注意哪些方面?
回答:接口测试首先了解需求,了解接口的功能,选择适合的测试工具(有编码基础的同学可直接通过代码进行测试),编写测试用例,数据库中维护测试数据,执行测试,输出测试报告,后期进行持续集成方便进行回归测试;APP接口一般都是在服务端与客户端进行对接,由于服务器接口测试通过后,客户端调用可能会出现问题…如何保证客户端与服务端的接口正常对接,值得深究;在测试APP过程中,关注业务功能的同时,还需要关注底层接口间数据交互,移动端查看接口间的数据交互往往通过抓包工具来实现,目前主流的抓包工具有fiddler、Charles等,客户端发送请求后,通过抓包工具查看请求后返回的字段、数据类型等是否与接口文档中一致。
4、51Testing: 不知道常用的接口测试工具有哪些?作为一个初级测试,想学接口测试,比较适合学习什么工具呢?
回答:常用的测试工具有:postman、jmeter、poster等等,
① Postman是谷歌浏览器的一款插件
② Jmeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
③ Poster是火狐浏览器的一款插件
学习工具可以从postman和jmeter入手,网上资料较多。
5、51Testing: 如果使用Jmeter对APP的登录进行性能测试,要用Jmeter测试某一个APP登录的api进行接口性能测试,要如何实施和具体调优思路又是什么?
JMeter本就是性能测试工具,接口用例完成后,设置线程数、thinktime等设置便可开展性能测试
性能测试数据可通过参数化实现,比如登录测试数据可通过CSV Data Set Config设置参数化读取数据文件,手动增加并发数量,查看jmeter聚合报告,结合执行结果对性能进行调优
6、51Testing: 接口测试其实就是检查数据的交换、传递和控制管理的过程,您觉得接口测试数据用什么方式构造和存储会比较合理,有利于后期维护?
回答:接口测试数据存放在测试数据库中,测试数据(增删改)可通过数据脚本进行维护
对于测试数据的构造你需要考虑2点:
①入参
②出参
根据数据驱动测试的思想,你需要将入参与出参的数据全部提取出来,单独进行管理。将接口测试作为数据驱动是最好的一种模型。通过入参的EXCEL表或者其他便于非编码格式的管理方式的修改,来驱动测试的进行。然后根据出参的期望值来进行比对,给出测试结果。这是最基本的思想。根据请求,你可以按照你的协议来进行。例如:编号、业务名称、业务简称、请求方式、请求URL、请求参数、预期正确值、实际值、是否通过测试、是否运行该条用例等字段来明确数据驱动方式。
7、51Testing: 如果用Python进行自动化接口测试,要如何实现模拟不同的网络环境访问接口?系统与系统间的接口测试要怎么做?
回答:可通过设置代理形式模拟不同网络环境,例如可通过抓包工具fiddler、Charles进行限速,或者使用第三方工具:树莓派,搭建弱网环境进行网络模拟;在移动APP测试过程中弱网测试也是必测项。系统与系统之间的接口测试与其他接口类似,只不过调用的是第三方的接口,例如支付、登录等,调用第三方接口后查看response。下面l来看Python+unittest+requests测试接口,判断接口返回的状态值是否是200.
8、51Testing: 针对 App 中新业务或新功能的开发,是否要等到新业务功能接口都开发完毕后,才能落实接口测试?
回答:在新业务或新功能开发过程中,相应的接口会新增或者修改,在开发的过程中可先了解需求,与开发沟通功能实现,数据表结构等;待接口开发完成后可进行接口测试。
也可以自己在本地做一份和服务器一样的接口协议文件,然后我们从本地获取后就等同于获取了接口数据,后面替换的时候,只需要将获取本地的东西转换成服务器的接口即可,当然对于项目中的接口认证等后面还是需要联调的。
9、51Testing: 使用Jmeter做接口测试,怎么验证、核对响应结果中json的内容?
回答:接口测试验证和核对响应结果可通过断言进行判断,断言通过则可判断该用例测试通过,以下简单的例子是测试未通过…
10、51Testing: 对于想学接口自动化测试的童鞋,您有什么书籍推荐吗?
回答:接口自动化书籍目前还是比较少,建议到51testing等论坛搜索接口测试工具的资料。
由于时间关系,本次访谈正式结束,非常感谢邓老师抽出宝贵时间参加我们的访谈和对小编工作的支持,让小编对接口测试领域了解了不少,相信这次的内容也将会给测试员带来颇多的收益。希望以后能有更多的机会,能让您分享测试心得!
顾翔凡言:
不懂人工智能的IT人员在五年后不可想象,python的作用是伟大的。
啄木鸟软件测试培训中心,2017年主打课:
各企业可进行裁剪
自动化软件测试课程(企业内训 ¥24,000,公开课 ¥2,000/人)
软件性能测试课程(企业内训 ¥18,000,公开课 ¥1,500/人)
WEB软件用户体验式测试课程(企业内训 ¥12,000,公开课 ¥1,000/人)
安卓APP自动化软件测试课程(企业内训 ¥24,000,公开课 ¥2,000/人)
问题引导的用户验收测试(UAT)课程(企业内训 ¥12,000,公开课 ¥1,000/人)
嵌入式软件测试培训课程(企业内训 ¥18,000,公开课 ¥1,500/人)
探索式软件测试课程(企业内训 ¥12,000,公开课 ¥1,000/人)
APP软件专项测试课程(企业内训 ¥12,000,公开课 ¥1,000/人)
WEB软件安全性测试课程(企业内训 ¥15,000,公开课 ¥1,200/人)
WEB软件测试课程(企业内训 ¥12,000,公开课 ¥1,000/人)
以项目为导向的敏捷课程方案(
两天课企业内训:¥12,000 公开课:¥1,000/人
三天课企业内训:¥18,000公开课:¥1,500/人
一周课企业内训:¥29,000公开课:¥5,000/人
四周可企业内训:¥100,000公开课:¥1,0000/人
)
以上是关于如何从零开始玩转接口测试?的主要内容,如果未能解决你的问题,请参考以下文章