【python】python+pytest+allure+jenkins的接口自动化框架搭建

一、目的

本文用于记录python接口自动化框架搭建的主体架构

 

二、python自动化编码环境准备

见上一篇博客【python】python自动化编码环境准备

 

三、框架目录结构介绍

【python】python+pytest+allure+jenkins的接口自动化框架搭建

 

说明:

|--comon #定义的公共类、函数。包括Excel处理、log等。
    |--excel_parse #解析excel通用类
|--logger #记录日志通用类
|--request #接口请求通用类
|--login #处理登录及session初始化 |--conf
|--conf.ini #全局配置文件,主要存放服务器ip,端口,登录用户名密码等信息。
|path_config.py #全局路径定义文件,例如测试数据存放路径等
|read_config.py
|--report #测试报告输出目录,包括allure-report和logs。 |--src_libs #自定义的关键字库,业务封装
|--aa #自定义类aa
|--bb #自定义类bb |--testcase #测试用例 |--test_aa #用例文件,以test_*开头 |--test_bb
|--testdata #测试数据 |--testdata_aa #e.g.存放大搜测试数据,excel格式 |--
testdata_bb
|--main.py #测试用例主入口,支持带参数执行。
|--pytest.ini # pytest配置文件,用于定义case标签。

四、框架数据流

【python】python+pytest+allure+jenkins的接口自动化框架搭建

 

 

  1. 读取接口配置文件config.ini,包括:hostip,hostport,username,password等
  2. 读取Excel中的测试用例数据,返回用例列表caselist
  3. 参数化测试用例,将caselist中的用例数据逐条传递到用例中,处理数据中参数、变量
  4. 发送http请求,获取返回信息
  5. 校验结果,response result=expect result
  6. 存储变量
  7. 输出测试报告  ${workspace}/report/html/index.html

五、pytest简介

  5.1.用例命名规则:   

  • 符合命名规则test_*.py 或者 *_test.py的文件   
  • 以test开头的函数名   
  • 以Test开头的测试类(没有__init__方法)当中,以test_开头的方法
  • 断言使用基本的assert即可

  5.2.用例执行顺序:

  • 先执行类前置–>单用例前置–>方法用例–>用例后置–>类后置
  • setup_class → setup_method → testcases ->teardown_method→teardown_class
  • testcases的执行顺序随机

  5.3.pytest执行用例

  • 终端执行:pytest --sv test_XXX.py -m "smoke" --alluredir=../../report/allure_dir --clean-alluredir
  • 主函数执行:pytest.main(["-sv","test_XXX.py","-m","smoke"])
  • main.py 执行:python main.py test_XXX.py 10.82.241.66 8099

  5.4.支持测试场景

  • 支持对testcase分类执行@pytest.mark.smoke;pytest -m "smoke or V1.1.1"
  • 跳过指定用例执行@pytest.mark.skip
  • 支持自定义前置后置条件@pytest.fixture()
  • 支持jenkins集成
  • 支持多个接口之间的数据复用
  • 测试数据驱动脚本,无需编写代码。使用Excel快速编写接口测试用例

六、框架使用流程

  1. 在config.ini中配置服务器基本信息
  2. 在Excel中编写测试用例,并标记出需要运行的用例,放置在指定的路径testdata下
  3. 在pycharm中编写测试用例,参考【python】如何编写你的第一个自动化用例
  4. 在pycharm终端进入对应的用例文件夹下执行用例

               #pytest -sv test_demo.py --alluredir=../../report/allure_dir --clean-alluredir

       5.用例结束后,生成allure报告

                #allure generate ../../report/allure_dir -o ../../report/html --clean

       6.查看allure报告,在../../report/html目录下查看index.html,即测试报告

 
上一篇:分布式消息队列RocketMQ—个人笔记(尚硅谷老雷老师视频)


下一篇:pytest+yaml+allure接口自动化测试框架07.集成allure报告