51Testing软件测试论坛
标题: 【你来问我来答第126期】: 如何从零开始做好接口自动化测试(活动结束) [打印本页]
作者: lsekfe 时间: 2022-5-5 10:15
标题: 【你来问我来答第126期】: 如何从零开始做好接口自动化测试(活动结束)
[attach]137836[/attach]
论坛ID: 子慕予兮
真实姓名: 仲老师
现任公司: 博为峰
现任职位: 讲师
工作经验:
毕业于英国Univ. of Glasgow 计算机工程硕士;具备10多年软件测试及IT项目管理经验;曾供职于皇家苏格兰政府机构,花旗软件,完美世界等国内外知名企业,先后担任SQA,测试经理,敏捷教练。熟悉软件测试流程,工具,熟悉IT项目管理方法论,持有Prince2Practitioner,CMMI,CSM;对软件测试领域和敏捷研发有较深入地研究,在软件测试培训行业亦有多年授课经验。
各位会员可以在5.10日前以回帖的方式向客座专家提问。(请大家围绕本期客座专家的擅长领域进行提问、探讨)
客座专家将在5月1日—5月31日为大家集中解答。机会难得,欢迎大家踊跃提问!
作者: Mario洁 时间: 2022-5-10 15:54
请教下 现在接口自动化测试框架 用哪些方式管理测试用例 测试数据 好呢?
作者: 哈士奇的罪恶 时间: 2022-5-10 17:34
老师您好项目测试过程中,如何用好ui/接口自动化测试,提升测试效率?
作者: 海上孤帆 时间: 2022-5-11 11:43
你好,想实现http接口测试自动化,能定期执行并发送报告,目前有什么好用的工具吗?
作者: 巴斯蒂安 时间: 2022-5-11 13:13
接口测试自动化测试 怎么把上一个接口的输出做为下一个接口的输入呢?
作者: 子慕予兮 时间: 2022-5-11 13:31
http自动化测试,如果你的接口还在研发阶段,不是特别稳定,接口文档也不算特别完整,这个时候测试人员也是可以介入测试,推荐用抓包工具和接口工具配套使用,抓包用fiddler/charles都行,接口工具推荐postman,如果你不做接口性能压测的话,postman比较推荐,因为这个能够帮你管理一系列相关的测试用例,也能生成简单的结果报告,想要更好看的报告,可以结合newman;等到你们的接口稳定了,不怎么变动了,这部分如果属于回归测试范畴的话,可以将其通过自动化测试用例脚本化,即通过python requests + unittest/pytest + allure, 如有需要,可以结合数据驱动,参数化对框架进行优化。
作者: 子慕予兮 时间: 2022-5-11 13:41
ui层面的自动化需要慎重点考虑,如果你们项目的UI界面变动比较频繁,非常不建议,自动化脚本的研发本身就需要大量的精力,包括技术能力经验,测试需求分析等,非常不推荐界面变动较频繁的项目做UI自动化,这类情况往往手工比自动化效率更高;除非某几个模块界面不怎么变动,或者变动不大,你们通过关键字模式。po模式等可以很方便的维护自动化测试用例,维护成本低,界面变动小,回归测试使用频率高,那么这个比较适合UI自动化;
再说接口,接口自动化相较于UI自动化,成本低,因为接口往往一旦固定下来,不容易轻易变动,毕竟这个和开发设计有关,所以优先接口自动化,再考虑一些不经常变动的页面,需要频繁回归测试,冒烟测试的这些进行UI自动化。
作者: 子慕予兮 时间: 2022-5-11 13:44
这个和接口关联有关,涉及到接口的联调,举个例子 购物流程接口 : 登录后才能进行购物结账,那么你登陆后需要查看,接口的返回参数中是否有标记你登陆状态的参数,例如cookie, session, token之类,需要对登录接口返回做个分析,然后对下一个接口(例如购物结账)进行接口输入参数的分析,看看哪个参数需要获取你之前登录后的返回信息。建议可以先用抓包工具fiddler看看上一个接口的返回和下一个接口的输入参数。
作者: 子慕予兮 时间: 2022-5-11 15:44
关于测试数据的管理有这么几种方式,无非是要么文件储存,要么数据库存储:
1. 以文件的方式进行测试数据的存储,可以尝试先在文件中写入一组测试i数据进行读取,调试通过后,再多增加两组数据,再进行调试,直到没有任何问题了,就可以放心大胆的构造任意的批量数据了。
2. 有些接口测试数据必须从数据库中实时读取,那就需要写脚本连接数据库,通过执行SQL命令取出相应的测试数据。
关于测试用例的管理,现在主流的自动化框架都能做到批量执行测试用例,建议可以将测试用例按业务类别区分,放在不同的目录下,那么执行的时候就可以通过配置文件批量指定需要执行的测试用例集了,以python编写自动化测试为例,pytest在配置文件方面做的挺强大的,可以多了解一下。
作者: 萌萌兔 时间: 2022-5-12 11:19
你好老师,我想问下如何使用soapui进行自动化接口测试??
作者: 韶光暗淡 时间: 2022-5-12 11:42
最近在做接口自动化测试,之前我用过的是python+unittest,但是之前的接口数据我放到了ini配置文件里面,然后封装了一个类,去读取ini文件里面的数据,现在我想把接口数据拿出来放到excel表中,但是我不知道该怎么数据拿出来,老师可以指教一下,谢谢了
[attach]137950[/attach]
作者: 游泳的鱼儿 时间: 2022-5-12 13:35
你好,接口测试用例很多种,有用数据库的,有用表格的,有用yaml的,这是目前了解到的,可能还有很多其他地方式来获取数据,但是如果非要
项目阶段,项目的大小,用例的可维护行,可移植性,编写用例的效率等等目前我已知可能的客观实际的影响条件,或许还有更加关键的影响
影响因素,我不知道的,也请告知,主要目的是为了,根据公司的实际情况取判断,应该使用哪种方式比较好。
作者: 子慕予兮 时间: 2022-5-13 15:16
任何工具做接口自动化的工作任务流程都是一致的:
1. 需要结合接口文档/接口设计做接口测试需求分析,如果文档不齐全,可以通过fiddler抓包等看一下被测接口的输入返回,然后跟开发确认;
2. 设计接口测试点,测试用例,这些都是需要基于确认的需求,才能算有效的测试点和测试用例,另外这些测试点测试用例,最好都能够经过团队一致评审,以防无效用例,无效工作
3. 在上一步的基础上,就可以通过工具进行接口测试执行了,接口测试工具,postman/jmeter/soapUI都是可以用的,每种工具的理念都是一直的,只是操作方式不同,类似word和记事本,有道云等,都能编写文章,只是操作的按钮不大一样而已。所以对于工具的使用,一通百通,是有这个道理的,万变不离其宗。
以soapUI为例,可以先阅读一下他的官方文档,入门的操作步骤,然后结合你整理的测试点,测试用例,结合soapUI工具进行接口测试的执行,soapUI入门的话比较简单,后续如果想灵活应用驾驭的话,需要熟悉groovy脚本的使用; 也可以关注一下51testing测试圈,有不同工具的讲堂分享预定,帮你快速入门soapUI应用
作者: 子慕予兮 时间: 2022-5-13 15:20
根据你字面上的含义,我是这样理解的,需要结合python第三方库,专门用于处理excel文件的库,例如:openpyxl, 这个库比较强大,可以处理excel表格中的各项功能,这样你就可以根据api_name,取到对应列中的内容了,当然python excel处理的第三方库还有其他几个,专门用户数据分析的pandas库也提供了对应的表格内容提取处理功能,这些都可以尝试以下的。
作者: 子慕予兮 时间: 2022-5-13 15:25
这个问题和之前有位同学提到的关于测试数据存储,用例维护有点类似,基本上可以遵循这样的原则:
关于测试数据的管理有这么几种方式,无非是要么文件储存,要么数据库存储(你在问题中也提到了):
1. 以文件的方式进行测试数据的存储,可以尝试先在文件中写入一组测试i数据进行读取,调试通过后,再多增加两组数据,再进行调试,直到没有任何问题了,就可以放心大胆的构造任意的批量数据了。
2. 有些接口测试数据必须从数据库中实时读取,那就需要写脚本连接数据库,通过执行SQL命令取出相应的测试数据。
关于测试用例的管理,现在主流的自动化框架都能做到批量执行测试用例,建议可以将测试用例按业务类别区分,放在不同的目录下,那么执行的时候就可以通过配置文件批量指定需要执行的测试用例集了,以python编写自动化测试为例,pytest在配置文件方面做的挺强大的,可以多了解一下。
如果说你的项目很小,用例数也有限,规模不大,每次的回归测试集就这么几个,屈指可数,那完全可以不用搞那么复杂,看看postman本身的collection够不够用就行了,而且postman本身也支持数据驱动,你把数据单独弄个csv文件保持就行,这样就一个postman就能满足需求,当然前提是你的项目范围够小,测试集也就那么些,不复杂,管理相对还是简单的情况下。否则如果项目规模大,回归测试用例集庞大,那么就要考虑结合测试框架进行有效管理维护了。
作者: MilgGtery 时间: 2022-5-16 11:44
专家你好,做接口测试的用 java来搭框架怎么搭呢?
作者: always_fly 时间: 2022-5-16 15:13
嘉宾你好,想要尝试进行接口测试,但是找不到合适的网站,请问哪里能找到呢?
作者: 子慕予兮 时间: 2022-5-17 14:26
可以看一下这里有一些开源的接口,方面你自己练习,但要说有点规模性的接口项目,确实没有特别好的;
https://www.juhe.cn/docs/api/id/1/aid/1
作者: 子慕予兮 时间: 2022-5-17 14:41
JAVA做接口测试的话,需要掌握并能够应用这些库及相关框架技术:
1. httpclient它是一个客户端的http通讯实现库,HttpClient的目标是发送和接收HTTP 报文,相当于python中的requests库
2. mybatis/mavan这类工程项目管理类的框架,二选一即可
3. testng/junit这类测试框架,testNG属于比较热门的,功能也强大
4. 日志类库,log4j
5. 可以结合数据驱动,进行参数化,实现测试数据与测试用例的分离,后期方便有效维护
6. 测试报告,可以用allure,这个框架功能还是挺强的,也支持自己自定义测试报告
作者: 海上孤帆 时间: 2022-5-24 14:01
本人做软件功能测试两年,最近接触接口自动化测试,自己琢磨不知如何下手,希望专家能给点意见和建议借鉴一下,感谢!
作者: 克里斯特钠博联 时间: 2022-5-24 14:46
你好,最近发现一个现象为什么更多软件测试的同事,排斥要写脚本的接口自动化测试??
作者: 子慕予兮 时间: 2022-5-24 15:50
对于接口测试新手来讲,要想做好接口测试首先要了解协议以及协议的请求方式,了解接口间的数据传递,业务流程。无论是哪种接口实现技术,我们都要有能力分析出以下内容,就可以有效的开展后续的接口测试工作了。
1. 接口的请求地址或接口程序访问地址
2. 接口所需要传递的参数(参数个数,参数名称,参数的规则及要求等,注意是否存在隐性参数)
3. 接口的请求方式
4. 接口的响应结果(格式,内容,正常响应,异常响应)
在重复了解以上接口相关要素后,就可以结合接口测试业务,通过接口测试工具,逐步实践了,这里只说一说工具,那是因为对于接口测试新手而言,通过工具(抓包fiddler/charles; 接口测试工具Postman/Jmeter)z这类现成的工具,来辅助,鉴于这些工具功能都比较全面,对于新手而言,入门比较容易,也能让自己快速上手。特别是对于没有任何代码基础的新手而言,通过第三方工具进行接口测试,也能参与接口测试项目任务。
此外,设计接口测试用例时,需要考虑各参数的传递,比如传入的字符为int,在测试过程中充分考虑到该参数的特殊情况,比如:为空,传入非int型、边界值、各传入间的参数组合等等,检测接口返回数据的准确性,当然也需要考虑接口性能及安全方面。
接口测试重点是检测数据间的传递以及系统间的模块与模块间相互逻辑依赖关系。接口测试的方法有很多,比较常见的是通过一些接口测试工具来实现接口数据的传递,也有编写代码来实现数据传递,以上都是可以在没有客户端界面的情况下做的,但需要对接口的实现比较熟悉。另外其实还有别的方式,比如在网络中将接口数据调包修改,或者以修改客户端的方式达到某些目的,且非常真实有效,最终达到测试的目的,找出程序的错误。
作者: 子慕予兮 时间: 2022-5-24 16:01
对于接口测试而言,工具和自己写自动化测试脚本各有所长。我们常见接口测试工具有jmeter, postman, soapUI;此外还有辅助接口测试用的抓包工具fiddler,charles这类。 自己写接口自动化测试脚本,python requests + unittest/pyptest + allure, 结合数据驱动等设计模式,最后并入持续集成,一般这样的模式更多;
至于你所说的“排斥要写脚本的接口自动化测试”的原因,可以分为两类吧,一类是从企业角度,明明没有那么大规模的接口测试(回归测试用例/冒烟测试用例)需要积累沉淀和维护,但企业管理者为了追求一些所谓的高大上前沿技术,即瞄准BAT之类的大厂,他们有的,我们也要有,那么在没有全面评估当前项目投入产出比的同时,盲目下令一切接口测试都必须自动化脚本化,导致过多的精力都花费在自动化测试脚本的研发调试上,而真正需要好好做的测试任务反而被忽略了;
其二,从个人自身出发,自动化测试脚本的编写,说白了必须要有一定的代码能力,程序编写能力,这也是手工功能测试人员的一大痛点,所以就会产生 “既然已经有现成的接口自动化测试工具,为什么还要自己写接口自动化测试脚本” 的疑问了,觉得有现成工具,自己写脚本是多余的。
以上从我个人观点出发,看您提出的这个质疑,不敢说完全正确,但却是存在个人及企业管理者两方面的原因。
总而言之,测试工具,和自动化测试脚本语言,这是两个范畴的概念,无法进行区别比对。简单来说可以这样理解,使用Jmeter等测试工具,可以通过人工的操作来进行接口测试的执行工作,我们暂且称为接口手工测试。这样的工作方式非常简单,在接口测试工作量比较小的情况下,还是可行的,但是需要测试接口的数量非常多,一般来说超过20个以上,就不太适合再用工具进行测试了。
建议可以在接口基本已经稳定的情况下,使用python来编写自动化接口测试脚本来进行,可以大大提高测试工作的整体效能。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |