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引入了
post
、get
、head
、patch
、put
、delete
、options
等方法。
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
QQ群:948994709
Mail:[email protected]