reudom

Automated testing framework based on requests and unittest interface.

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

介绍

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

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

目录架构

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

安装教程

  1. > pip install reudom

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

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

创建项目

  1. >reudom --project myreudom

运行项目:

  1. > reudom -r run.py
  2. Python 3.7.1
  3.  
  4. _
  5. | |
  6. _ __ ___ _ _ __| | ___ _ __ ___
  7. | '__/ _ | | | |/ _` |/ _ \| '_ ` _ \
  8. | | | __| |_| | (_| | (_) | | | | | |
  9. |_| \___|\__,_|\__,_|\___/|_| |_| |_|
  10. --------------------------------------
  11. @itest.info
  12.  
  13. generated html file:/Users/work/reports/2019_12_22_14_51_57_result.html
  14. .1

查看报告

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

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

Simple demo

请查看 demo/test_sample.py 文件

  1. import reudom
  2.  
  3. class test(reudom.TestCase):
  4. def setUp(self):
  5. self.url = 'http://www.baidu.com'
  6.  
  7. def test01(self):
  8. rep = reudom.request('get', url=self.url, headers=self.headers())
  9. result = rep.json()
  10. self.assertEqual(result['status'], '')
  11.  
  12. if __name__ == '__main__':
  13. reudom.main("test_sample.py")

说明:

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

main() 方法

  1. import reudom
  2.  
  3. # ...
  4.  
  5. if __name__ == '__main__':
  6.  
  7. seldom.main(
  8. path="./",
  9. title="接口自动化测试用例",
  10. description="详细测试结果:",
  11. debug=False,
  12. rerun=0,
  13. save_last_run=False,
  14. )

说明:

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

Run the test

  1. import reudom
  2.  
  3. reudom.main(path="./") # 当前目录下的所有测试文件
  4. reudom.main(path="./test_dir/") # 指定目录下的所有测试文件
  5. reudom.main(path="./test_dir/test_sample.py") # 指定目录下的测试文件
  6. reudom.main(path="test_sample.py") # 指定当前目录下的测试文件

说明:

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

跳过用例

  1. import reudom
  2.  
  3. class YouTest(reudom.TestCase):
  4.  
  5. @reudom.skip("跳过这条用例的执行")
  6. def test_case(self):
  7. """a simple test case """
  8. #...

在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,
  • 然后使用:
  1. reudom.aesCrypt(
  2. key='16位',
  3. model='加密模式',
  4. iv='CBC模式需要它',
  5. encode_='默认GBK')
  6. .aesEncrypt('传入需要加密的明文')
  • key 传入长度必须是:16、24、32位
  • model 可选择:ECB、CBC、CFB、PGP、OFB、CTR、OPENPGP 这七种模式
  • iv 使用 CBC 时需要传入的与 key 同样的长度
  • encode_ 默认使用了 GBK 编码
  • text 传入需要加密的 明文
  1. import reudom
  2.  
  3. reudom.aesCrypt(key='', model='CBC', iv='', encode_='GBK').aesEncrypt(text='')
  4.  
  5. 控制台:
  6. /usr/bin/python3 /Users/yuanbaolei/work/GitHub/reudom/CryptoAESAES/Cipher/aesEncrypt.py
  7. 15tT+y0b+lJq2HIKUjsvvg==
  8.  
  9. Process finished with exit code 0

接口自动化测试框架 -- reudom的更多相关文章

  1. 接口测试入门(4)--接口自动化测试框架 / list和map用法 / 随机选取新闻 (随机数生成) / 接口相关id映射

    一.接口自动化测试框架 为了更好的组织测试方法,测试用例并且持续集成,我们选择了  java+testNG(测试用例组织)+gitlab(代码版本管理)+Jenkins(持续集成工具) 作为一整套的自 ...

  2. python版接口自动化测试框架源码完整版(requests + unittest)

    python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...

  3. 接口自动化 [授客]基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  4. 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]

    基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]   by:授客 QQ:1033553122 由于篇幅问题,,暂且采用网盘分享的形式: 下载地址: [授客] ...

  5. 基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0 目录 1. 开发环境2. 主要功能逻辑介绍3. 框架功能简介 4. 数据库的创建 5. 框架模块详细介绍6. Tes ...

  6. 【转】robot framework + python实现http接口自动化测试框架

    前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测试框架,以至于后期rd每修改一个bug,经常导致之前没有问题的case又产生了 ...

  7. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  8. 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

    基于python实现的http+json协议接口自动化测试框架(实用改进版)   by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436     目录 1.      ...

  9. Python 基于python实现的http接口自动化测试框架(含源码)

    基于python实现的http+json协议接口自动化测试框架(含源码) by:授客 QQ:1033553122      欢迎加入软件性能测试交流 QQ群:7156436  由于篇幅问题,采用百度网 ...

随机推荐

  1. protobuf_1

    我使用的是最新版本的protobuf(protobuf-2.6.1),编程工具使用VS2010.简单介绍下google protobuf: google protobuf 主要用于通讯,是google ...

  2. H3C 路由器的特点

  3. H3C 802.11协议的发展

  4. Redis正确使用的十个技巧

    http://www.jb51.net/article/73376.htm Redis 在当前的技术社区里是非常热门的.从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redi ...

  5. Python--day49--ORM框架SQLAlchemy之relationship的使用(有时间要从新看,这里状态不好,没有仔细听)

    小贴士:   迭代器:只有在循环的时候才一个一个往外拿 relationship

  6. Python--day25--复习(单继承和多继承的总结)

  7. HDU 1271

    这题做了好久..... 理解别人的代码都理解了好久!!!太弱太弱. #include<iostream> #include<algorithm> #include<cma ...

  8. H3C 传递信息(续)

  9. H3C DNS域名解析原理

  10. tensorflow在文本处理中的使用——skip-gram & CBOW原理总结

    摘自:http://www.cnblogs.com/pinard/p/7160330.html 先看下列三篇,再理解此篇会更容易些(个人意见) skip-gram,CBOW,Word2Vec 词向量基 ...