接口自动化测试框架搭建方法详解

Yanyan 223 2023-10-31


在工作中,当一个项目确定要做接口自动化测试之后,我们一般面临两种情况:

1.公司已经在做自动化测试,自己成为其中的一员

这种情况下,我们需要做的就是快速了解现成的自动化测试框架,多看项目代码,了解团队的业务逻辑、代码风格,快速融入进去。

2.公司之前没有在做,需要你0-1搭建。

这时候就需要我们去根据项目和自身技能的具体情况,去规划整个自动化测试框架。

一、自动化测试框架规划思路
1.选择语言

python

java

自己擅长哪个选哪个,推荐python

2.编程工具选型

pycharm

vscode

自己擅长哪个选哪个

3.测试框架选型

unittest —python自带的测试框架

pytest —unittest升级版,推荐

httprunner

rf框架 —关键字

4.报告可视化方案选型

htmltestrunner

beautifulreport

allure

5.持续集成方案

jenkins

6.仓库服务器选型

github —服务器在国外

gitlab

gitee

7.测试管理工具选型

禅道

jira

接口自动化测试框架的搭建一般有两种思路

1.基于工具的

例如:Postman+Newman+Jenkins+Git/svn Jmeter+Ant+Jenkins+Git/svn

2.基于代码的

例如:Python+Requests+Pytest+Allure

个人建议:如果是学习阶段,选择基于代码的模式,通过自己一步一步的规划项目、编写代码,可以更好的理解接口自动化的实现原理,之后再学习一些工具会更得心应手。

我这里选择的是: Python+pycharm+pytest+allure+gitlab+jira

规划好方案后就可以创建我们的项目代码工程了(可以与编写测试用例并行,需要提前约定好测试用例的格式,方便后续代码设计)。

二、项目代码工程构建思路
设计框架的原则:

封装基类方法

对于一些较通用的方法,可以封装,比如发送请求、增、删、改、查。

高内聚低耦合

每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。

模块与模块之间接口的复杂程度尽量低,比如在类内部尽可能减少方法之间的调用,否则一个方法的变动会影响调用它的另一个方法。

脚本分离

业务代码、测试数据应该相互剥离、灵活调用。理念类似初识PO模式并在Selenium中简单实践中的PO设计模式。代码中应该不出现具体的数据、配置。而是调用对应的数据文件。

三、一个比较完善的项目代码工程结构:

- common  #包文件,公共模块,存放一些通用方法
   - baseapi.py        - class BaseApi()#基类
           - 方法1:发送请求            - 方法2:增            - 方法3:删            - 方法4:改            - 方法5:查- libs  #包文件,存放业务层代码
   - login.py #登陆模块
       - class Login(BaseApi) #继承基类里的BaseApi
           - 方法1:发送登陆请求            - 方法2:发送登出请求    - logout.py #登出模块
       - class Logout(BaseApi)- configs  #包文件,存放配置
   - config.py        - HOST='xxx'#用于切换测试环境
       - url='xxx'- datas #文件夹,存放数据/测试用例
   - xxx.xls    - xxx.yaml- testCase #包文件,存放测试用例代码,注意符合pytest命名规范
   - test_login.py        - class Test_login            - 方法1:test_login01            - 方法2:test_login02    - test_logout.py        - - class Test_logout            - 方法1:test_logout01            - 方法2:test_logout02- outFiles #文件夹,输出文件
   - logs #存放log文件
   - report #存放报告
   - screenShot #存放截图- tools #包文件,工具类
   - handle_data.py
   - handle_excel.py    - handle_path.py    - handle_yaml.py- docs #文件夹,存放说明类文档
   - 代码规范.doc    - 需求文档.doc12345678910111213141516171819202122232425262728293031323334353637383940414243

框架搭建:
1698717531569.png

四、后续代码编写思路:

框架写好后的代码编写思路,大体上为

1.基类封装,把一些常用的方法比如发送请求、增、删、改、查放到我们的基类里。

2.编写业务层的接口代码

3.编写测试用例代码,过程中发现缺什么就去写什么方法,思考这个方法应该放在具体业务内还是基类还是tools内,这个过程是对代码不断优化的过程。直到我们的用例代码写完。

五、介绍接口测试中常用的自动化框架requests的使用

首先是搭建框架,搭建框架的原理是根据代码分层来的。通过业务层和用例层分开的模式来完成。以我们用的python语言来举例。

首先创建python的虚拟环境,创建虚拟环境的好处是可以分开安装自己需要的安装包,而且不同的项目之间的安装包也互不干扰.

1.创建虚拟环境

我用的是pycharm2020版,点击[file]->[new project]->location栏填写自己的项目名称->[new environment using]->点击create

我们的虚拟环境就创建好了

然后创建包,根据框架里创建,首先是建包

  common 用来存放业务逻辑层的代码,还有对库的一些二次封装

  testcase 用来存放测试用例

  testdata 用来存放测试数据

  logs 用来存放测试日志

2.安装必备第三方库

可以在cmd里面安装也可以在pycharm里面安装

cmd:按Windows+R,然后输入cmd,按回车进入到cmd界面,然后输入安装命令

pip install requests openpyxl pytest pytest-order 

pycharm: 点击左下角[terminal]->输入安装命令

pip install requests openpyxl pytest pytest-order 

3.编写测试脚本

在common里面编写逻辑脚本,在testcase里面编写测试用例

因为我们使用的是python+pytest+requests这种方式,所以我们的执行测试用例呢用pytest,至于测试脚本和requests库还有pytest库我们在后面讲如何去使用.

4.执行测试用例

pytest会自动去寻找你包下面的文件,只要是以"test_"开头或"_test"结尾的文件,都会去执行它。

我们的测试用例都写在testcase里面.

所以我们的运行命令:
pytest testcase -s -v

-s 打印用例所有的输出语句

-v打印所有的测试用例输出报告



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:药物管理系统接口:提升医疗行业效率的创新解决方案
下一篇:智慧养老管理系统app,智慧养老管理系统 东华
相关文章

 发表评论

暂时没有评论,来抢沙发吧~