GithubHelp home page GithubHelp logo

alinnnnnnnnn / reudom Goto Github PK

View Code? Open in Web Editor NEW

This project forked from barryybl/reudom

0.0 0.0 0.0 651 KB

基于 Unittest 和 Requests 的 接口自动化测试框架

License: Apache License 2.0

Python 72.36% HTML 27.64%

reudom's Introduction

reudom

Automated testing framework based on requests and unittest interface.

基于 Unittest 和 Requests 的 接口自动化测试框架

介绍

基于Unittest/Requests的接口自动化测试库

  • 提供脚手架,快速生成接口自动化测试项目。
  • 自动生成HTML测试报告。
  • 支持用例参数化。
  • 支持用例失败重跑
  • 对原生Requests库API无损

目录架构

myreudom/
├── test_case/
│   ├── test_sample.py
├── reports/
└── run.py
  • test_dir/目录实现用例编写。
  • reports/ 目录存放生成的测试报告。
  • run.py 文件运行测试用例。

安装教程

> pip install reudom

If you want to keep up with the latest version, you can install with github repository url:

> pip install -U git+https://github.com/SeldomQA/reudom.git@master

创建项目

>reudom --project myreudom

运行项目:

> reudom -r run.py
Python 3.7.1

                     _                 
                    | |                
  _ __ ___ _   _  __| | ___  _ __ ___  
 | '__/ _ | | | |/ _` |/ _ \| '_ ` _ \ 
 | | |  __| |_| | (_| | (_) | | | | | |
 |_|  \___|\__,_|\__,_|\___/|_| |_| |_|                             
 --------------------------------------
                            @itest.info

generated html file:/Users/work/reports/2019_12_22_14_51_57_result.html
.1

查看报告

你可以到 myreudom\reports\ 目录查看测试报告。

reports文件夹可以不用自己去创建,它会在你执行run.py时自动创建此文件夹

simple demo

请查看 demo/test_sample.py 文件

import reudom


class test(reudom.TestCase):
    def setUp(self):
        self.url = 'http://www.baidu.com'

    def test01(self):
        rep = reudom.request('get', url=self.url, headers=self.headers())
        result = rep.json()
        self.assertEqual(result['status'], '200')


if __name__ == '__main__':
    reudom.main("test_sample.py")

说明:

  • 创建测试类必须继承 reudom.TestCase
  • 测试用例文件命名必须以 test 开头。
  • reudom引入了postgetheadpatchputdeleteoptions等方法。

main() 方法

import reudom

# ...

if __name__ == '__main__':

    reudom.main(
              path="./",
              title="接口自动化测试用例", 
              description="详细测试结果:", 
              debug=False,
              rerun=0,
              save_last_run=False,
    )

说明:

  • path : 指定测试目录或文件。
  • title : 指定测试报告标题。
  • description : 指定测试报告描述。
  • debug : debug模式,设置为True不生成测试HTML测试,默认为False
  • rerun : 设置失败重新运行次数,默认为 0
  • save_last_run : 设置只保存最后一次的结果,默认为False

Run the test

import reudom

reudom.main(path="./")  # 当前目录下的所有测试文件
reudom.main(path="./test_dir/")  # 指定目录下的所有测试文件
reudom.main(path="./test_dir/test_sample.py")  # 指定目录下的测试文件
reudom.main(path="test_sample.py")  # 指定当前目录下的测试文件

说明:

  • 如果指定的目录,测试文件必须以test 开头。
  • 如果要运行子目录下的文件,必须在子目录下加 __init__.py 文件。

跳过用例

import reudom


class YouTest(reudom.TestCase):

    @reudom.skip("跳过这条用例的执行")
    def test_case(self):
        """a simple test case """
        #...

在PyCharm里使用

  • 当你使用PyCharm编译器或其他Python编译器时,您只需要使用pip install reudom安装后在你项目的文件夹内创建.py文件里import reudom就可以了
  • 如果你需要正式的运行起来,只需在项目跟目录里创建run.py里使用上面的main方法取运行就可以啦;运行时会自动的在run.py的同级目录生成reports文件夹生成的 测试报告 就在里面!

AES加密

  • 现在很多项目都使用 AES 对接口进行加密传输处理,所以我也对 reudom 库进行了支持
  • AES最常见的3种方案_AES-128、AES-192和AES-256,但目前仅对 AES-128 方案进行了分装,后去会把剩下两种加进去
  • 您只需在你的.py工程里引入import reudom,
  • 然后使用:
    reudom.aesCrypt(
                    key='16位', 
                    model='加密模式', 
                    iv='CBC模式需要它', 
                    encode_='默认GBK')
                    .aesEncrypt('传入需要加密的明文')
  • key 传入长度必须是:16、24、32位
  • model 可选择:ECB、CBC、CFB、PGP、OFB、CTR、OPENPGP 这七种模式
  • iv 使用 CBC 时需要传入的与 key 同样的长度
  • encode_ 默认使用了 GBK 编码
  • text 传入需要加密的 明文
import reudom

reudom.aesCrypt(key='1234567890123456', model='CBC', iv='1234567890123456', encode_='GBK').aesEncrypt(text='123')


控制台/usr/bin/python3 /Users/yuanbaolei/work/GitHub/reudom/CryptoAESAES/Cipher/aesEncrypt.py
15tT+y0b+lJq2HIKUjsvvg==

Process finished with exit code 0

感谢虫师!借鉴seldom项目得到思路和帮助。

作者联系方式:

QQ:3165866425

Mail:[email protected]

blog:https://www.cnblogs.com/Barrybl/

reudom's People

Contributors

barryybl avatar

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.