08 | 测试数据:是不是可以把所有的参数都保存到Excel中?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
接口测试中的测试数据准备工作至关重要。本文从打造自动化测试框架的角度出发,探讨了将所有参数保存到Excel中的可行性。作者指出,随着测试框架的不断封装,测试数据就成为了“下锅的米”,而将数据存储到外部文件中可以实现无人值守的自动化测试,节省时间和精力。此外,通过自动检测返回值,还可以提高测试效率。文章通过实例代码和比喻生动地阐述了测试数据的重要性和好处,为读者提供了思路和启发。 文章中介绍了如何设计参数类,并将其应用到接口测试脚本中。通过统一抽象,建立一个公共处理数据的方式,作者设计了参数类,实现了参数的选取和调用。通过简单工厂类设计模式,实现了参数存储类型的快速扩展,提供了统一数据的处理模式。同时,文章还展示了如何将测试数据存储在Excel文件中,并通过参数类完成接口测试脚本的改造,实现了自动化测试。 总的来说,本文通过介绍参数类的设计和应用,以及简单工厂类设计模式的实现,为读者提供了在接口测试中优化测试数据准备工作的思路和方法。同时,文章还提出了思考题,引导读者思考如何将所学知识应用到自己的技术栈中,并对测试驱动框架进行选择和应用。这篇文章对于希望优化接口测试数据准备工作的技术人员具有一定的参考价值。
《接口测试入门课》,新⼈⾸单¥29
全部留言(30)
- 最新
- 精选
- 孙瑜明天就按老师说的去实践下,过年宅家机缘开始学测试自动化,在现在公司刚一年目前测试大家都是辅以工具的纯手工测试,想提升一下团队测试效率和质量。调研后选了python进行学习,测试框架选了pytest,学了已有三周,目前根据公司业务已经把requests、selenium、ymal、db三方库做了封装组合,已开始实际进行api和web自动话测试。数据驱动目前只是用了一些pytest的参数化装饰器或者写sql去数据库随机抓一些id当参数,明天就去试试放在execl来驱动,这周在弄PO分层,本来看视频自学写的都挤一起,然后还有log输出 自动截图 邮件 allure报告等基础功能,还考虑后续把执行结果或其他一些信息持久化存到数据库,并集成到公司jenkins上,因为公司都是web项目appuim还没学,但有几个公众号的webview项目,还不知道怎么弄,先把主要几个系统自动化都覆盖,并把框架再多完善完善,后续还想学下Django把框架web化一些,让其他不懂擅长开发的同事们操作更方便,所以execl也是大家比较擅长使用的。目前其实还没想得明明白白的是,怎么能让不会开发的测试同事在不编写代码的前提下,也能按照自己的测试经验编写能被自动化框架执行的测试用例、测试数据和断言,提升整个团队的效率,还请老师给予指导(因为我目前设计 数据断言可以数据驱动/自动,用例还是根据业务然后自己写py方法调用封装好的接口或者页面PO方法,不会写代码就用不起来,难道让他们写文字版,我来翻译成代码,感觉不灵活,参与感也不强)
作者回复: 你的遇见了很多现实问题让我想起了我在经历京东那次技术转型。方法很多,第一,内部提升整体技术水平。第二,我看到您工时测试技术复杂度太高。确实需要降低一下,降低需要缩小你现在团队技术范围,selenium,po,api有点多。不要一起全推动;然后可以引入一下自动化写脚本的思考。这里面自动化写脚本的思路可以参考我之前再TICA⬆️的演讲内容,另一种提升内部技术水平,你可以看一下我们团队写的那本团队转型的书
2020-02-18514 - nothingc_lj接触了httprunner manager这个接口自动化框架平台感觉不错,是通过数据库来存储测试用例数据
作者回复: HttpRunner manager 和HttpRunner我曾经也学习过对应的代码,没有选择的原因其实我还是喜欢将框架的主动权掌握在自己手里面,不太喜欢follow定制化或者封装太强的平台。
2020-02-1810 - 彦鋆老师,您好,看了您的文章,感觉茅塞顿开。我之前自己有写过前端的测试框架,利用po模式+selenium+unittest完成的;看了您的前几章, 我也初步写了自己的第一个接口自动化测试框架。利用自己的技术栈用分层处理的方式(有点借鉴PO模式)+unittest+excel存储数据实现了自己的接口自动化。 我的excel设计是这样的,每个sheet页的名称是接口的名称(比如battle中的index、login),sheet页中的数据就是当前接口的所有测试用例,第一行是参数说明, 主要设计有用例名称、方法、url、参数、预期结果;util层封装了操作excel的一些方法;handle层封装一条用例需要的参数;business层对handle层获取的参数作一些处理; common层就是对get/post/put方法的封装,case层主要所有的用例(test_接口名称.py),每个用例py文件实现每个sheet页中的所有用例; report层存放利用HTMLTestRunner生成的报告;最后利用jenkins完成自动化构建并发送邮件通知。 请老师指点一下我这个简单框架,目前还没有运用到工作中,谢谢。
作者回复: 看了你详细的描述,已经很好了,可以将我运用的你的工作中了。架构设计上很好,继续努力,在工作中在逐渐的丰满框架的测试能力。
2020-02-2337 - hello zero老师,请教个数据准备的问题,如果需要测试的是支付,那么是不是需要提前准备好订单数据,那订单数据本身可能又需要用户和商品数据,用户数据可能又需要地址数据,商品有可能需要品类和规格数据等等。这种情况下,是先构建最基础的数据比如地址数据并同时进行测试但是不删除数据一直留给支付测试使用,等支付使用完后再进行删除;还是每次测试支付的时候都使用一组选好的一直留在那里的数据进行测试呢。也就是如何构建闭环的长流程的可以重复执行的测试数据呢?
作者回复: 今后这种很靠后的数据,还是希望可以用其他接口测试脚本搞定。
2020-02-1936 - 梅子请问老师一个接口测试设计的问题,如果一个接口入参和出参数据值都比较多,入参的话需要每个参数都按照范围类型等进行测试吗?出参的话每个参数值都要进行校验吗?
作者回复: 单接口最好都要测试,入参可以通过json方式封装一下,方法可以看看是否可以引入正交试验的设计方法来满足更大的覆盖度,返回值的校验要看具体业务要求了
2020-09-103 - null陈老师,建议例子打包一个项目,读者debug阅读代码比较深刻。从页面复制代码到本地运行,格式错了运行不起来。
作者回复: 谢谢您的建议我这几天一起处理一下
2020-02-202 - 派森还是感觉yaml更加清晰,编写过程中格式问题也比较少
作者回复: yaml,json,xml也是各有所长。但是选择合适自己的就好了。加油
2020-02-2022 - aoe作为一个Java程序员,我希望自己的测试框架可以实现以下功能: 1. 发现Bug后立即报错,终止后续测试:快速失败机制,节省后续测试时间,可以立即进去修改阶段; 2. 跑完全部测试用例,统计出所有Bug:适合多少提交后、自身粗心大意的程序员,及时知道增加的工作量,合理分配时间
作者回复: 谢谢您,您的想法也给我了不同的思路。
2020-02-182 - 钱哈哈,为什么不把数据存储数据库中?然后搞个测试数据管理系统,增删改查导入导出可视化分析不好玩嘛? 看完总结就是,为了加快速度,一定要善用工具,没有工具就自己造工具,怎么造就需要学习一下编程技术啦!这是耗时耗力,但收益最大的一部分。
作者回复: tds也就是测试数据服务中心是未来发展出来的,是数据的最终解决办法了。
2020-02-2631 - 罗春南_Nancy执行获取参数并访问选择装备的接口时,脚本是一直在执行状态的,但是没有返回任何结果
作者回复: 您方便看的battle系统有日志输出的控制台吗?
2020-02-241