RobotFramework框架简介

Robot Framework框架是一个通用的验收测试验收测试驱动开发的自动化测试框架(ATDD),使用的是关键字驱动的测试方法。它本身拥有强大的标准库,此外还可以根据项目需要,使用Python对其测试库和框架本身进行扩展和优化,能同时满足对接口、数据库、UI自动化和服务器端自动化的测试需求,编写测试用例的成本低,维护方便。

项目说明

本框架使用的是接口设计的分层玩法,分层的原则是:接口数据和接口业务分离。具体为:项目目录结构分层,接口数据与接口用例分离,接口用例与接口业务分离,公共方法和公共配置也接口业务分离,在测试用例中可以传入不定参数,同时也可以定义用例的执行顺序。

技术栈

Robot Framework
RequestsLibrary
HttpLibrary.HTTP
框架目录结构及相关说明

1、框架目录结构图如下

在这里插入图片描述
2、目录结构说明
公共配置 ===========> +
配置文件,定义公共请求头、请求域名等
基础模块 ===========> 封装请求方法,公共方法和工具方法模块
功能组件 ===========> 封装接口业务模块,接口依赖模块,多个接口组合复杂业务场景等
主干用例&项目用例 ===========> 存放接口测试用例
代码设计与功能说明
1、封装请求方法,如下


  1. *** Settings ***

  2. Library RequestsLibrary

  3. Library Collections

  4. Library HttpLibrary.HTTP

  5. Resource ../icmcenterApi/公共配置/公共配置_index.txt

  6. *** Keywords ***

  7. SendPost

  8. [Arguments] ${root_url} ${uri} ${ParameterDict} ${DataType} ${header}

  9. [Documentation] ${root_url}:接口的host;

  10. ... ${uri}:接口uri;

  11. ... ${dict}:接口传入参数,字典数据类型;

  12. ... ${DataType}:传入参数类型,如data等;

  13. ... ${header}:请求头,字典类型。

  14. ...

  15. ... 响应数据为json类型。

  16. ...

  17. ... 若为独立请求,可在请求结束后立即释放连接。

  18. ${RequestData} Create Dictionary

  19. log ${ParameterDict.keys()}

  20. : FOR ${key} IN @{ParameterDict.keys()}

  21. \ set to dictionary ${RequestData} ${key} ${ParameterDict['${key}']}

  22. log ${RequestData}

  23. create session api ${root_url}

  24. ${response} post request api ${uri} ${DataType}=${RequestData} headers=${header} timeout=${timeout}

  25. # 将json的string类型的数据转成python的字典类型

  26. Comment ${ResponseBody} To Json ${response.content}

  27. sleep ${sleepTime}

  28. log ${response.text}

  29. [Return] ${response.text}

  30. SendGet

  31. [Arguments] ${root_url} ${uri} ${ParameterDict} ${header}

  32. [Documentation] 响应数据为json类型

  33. ${RequestData} Create Dictionary

  34. log ${ParameterDict.keys()}

  35. : FOR ${key} IN @{ParameterDict.keys()}

  36. \ set to dictionary ${RequestData} ${key} ${ParameterDict['${key}']}

  37. log ${RequestData}

  38. create session api ${root_url}

  39. ${response} get request api ${uri} params=${RequestData} headers=${header} timeout=${timeout}

  40. Comment ${ResponseBody} To Json ${response.content}

  41. sleep ${sleepTime}

  42. log ${response.text}

  43. [Return] ${response.text}

  44. re_session

  45. [Arguments] ${host}

  46. [Documentation] 创建会话

  47. create session session ${host}

  48. re_post

  49. [Arguments] ${uri} ${ParameterDict} ${DataType} ${header}

  50. [Documentation] 不创建会话,仅发送post请求;

  51. ... 响应数据为json类型

  52. ${RequestData} Create Dictionary

  53. log ${ParameterDict.keys()}

  54. : FOR ${key} IN @{ParameterDict.keys()}

  55. \ set to dictionary ${RequestData} ${key} ${ParameterDict['${key}']}

  56. log ${RequestData}

  57. ${response} post request session ${uri} ${DataType}=${RequestData} headers=${header} timeout=${timeout}

  58. Comment ${ResponseBody} To Json ${response.content}

  59. sleep ${sleepTime}

  60. log ${response.text}

  61. [Return] ${response}

  62. re_get

  63. [Arguments] ${uri} ${ParameterDict} ${header}

  64. [Documentation] 不创建会话,仅发送get请求;

  65. ... 响应数据为json类型

  66. ${RequestData} Create Dictionary

  67. log ${ParameterDict.keys()}

  68. : FOR ${key} IN @{ParameterDict.keys()}

  69. \ set to dictionary ${RequestData} ${key} ${ParameterDict['${key}']}

  70. log ${RequestData}

  71. ${response} get request session ${uri} params=${RequestData} headers=${header} timeout=${timeout}

  72. Comment ${ResponseBody} To Json ${response.content}

  73. sleep ${sleepTime}

  74. log ${response.text}

  75. [Return] ${response}

AI写代码

post请求

在这里插入图片描述
get请求

在这里插入图片描述
以不定参数的形式封装请求,后续调用时,可传入不同个数的参数,方便不同场景下测试用例的设计
2、封装接口业务模块

在这里插入图片描述
根据业务应用场景,组合接口模块
发起请求,获取响应,并进行响应断言

3、测试用例设计在这里插入图片描述

根据业务场景,设计测试用例
调用组合的接口模块,并依据场景需要,传入不同的参数
项目实例演示

在这里插入图片描述

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐