Code Monkey home page Code Monkey logo

pytestdemo's Introduction

pytestDemo

本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对本人的一个接口项目来开展的,通过 Python+Requests 来发送和处理HTTP协议的请求接口,使用 Pytest 作为测试执行器,使用 YAML 来管理测试数据,使用 Allure 来生成测试报告。

相关接口项目:使用 Python+Flask+MySQL+Redis 开发简单接口实例

项目说明

本项目在实现过程中,把整个项目拆分成请求方法封装、HTTP接口封装、关键字封装、测试用例等模块。

首先利用Python把HTTP接口封装成Python接口,接着把这些Python接口组装成一个个的关键字,再把关键字组装成测试用例,而测试数据则通过YAML文件进行统一管理,然后再通过Pytest测试执行器来运行这些脚本,并结合Allure输出测试报告。

当然,如果感兴趣的话,还可以再对接口自动化进行Jenkins持续集成。

项目部署

首先,下载项目源码后,在根目录下找到 requirements.txt 文件,然后通过 pip 工具安装 requirements.txt 依赖,执行命令:

pip3 install -r requirements.txt

接着,修改 config/setting.ini 配置文件,在Windows环境下,安装相应依赖之后,在命令行窗口执行命令:

pytest

注意:因为我这里是针对自己的接口项目进行测试,如果想直接执行我的测试用例来查看效果,需要提前部署上面提到的 flaskDemo 接口项目。

项目结构

  • api ====>> 接口封装层,如封装HTTP接口为Python接口
  • common ====>> 各种工具类
  • core ====>> requests请求方法封装、关键字返回结果类
  • config ====>> 配置文件
  • data ====>> 测试数据文件管理
  • operation ====>> 关键字封装层,如把多个Python接口封装为关键字
  • pytest.ini ====>> pytest配置文件
  • requirements.txt ====>> 相关依赖包文件
  • testcases ====>> 测试用例

关键字封装说明

关键字应该是具有一定业务意义的,在封装关键字的时候,可以通过调用多个接口来完成。在某些情况下,比如测试一个充值接口的时候,在充值后可能需要调用查询接口得到最新账户余额,来判断查询结果与预期结果是否一致,那么可以这样来进行测试:

  • 1, 首先,可以把 充值-查询 的操作封装为一个关键字,在这个关键字中依次调用充值和查询的接口,并可以自定义关键字的返回结果。
  • 2, 接着,在编写测试用例的时候,直接调用关键字来进行测试,这时就可以拿到关键字返回的结果,那么断言的时候,就可以直接对关键字返回结果进行断言。

测试报告效果展示

在命令行执行命令:pytest 运行用例后,会得到一个测试报告的原始文件,但这个时候还不能打开成HTML的报告,还需要在项目根目录下,执行命令启动 allure 服务:

# 需要提前配置allure环境,才可以直接使用命令行
allure serve ./report

最终,可以看到测试报告的效果图如下:

image.png

pytestdemo's People

Contributors

wintests avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pytestdemo's Issues

关键字的使用

请教下您:
关键字的举例说明,是不是应该是:依次调用【查询——充值——查询】的接口呢?

You can config log info in `pytest.ini` file

  1. config log info in pytest.ini file
log_file = ./log/test.log
log_file_level = INFO
log_file_date_format = %Y-%m-%d-%H-%M-%S
log_file_format = %(asctime)s [%(filename)s %(funcName)s %(lineno)d] %(levelname)s %(message)s```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.