1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python自动化测试框架开发_Postar 接口自动化测试框架 基于python+requests+pytest实现...

python自动化测试框架开发_Postar 接口自动化测试框架 基于python+requests+pytest实现...

时间:2021-12-21 02:03:54

相关推荐

python自动化测试框架开发_Postar 接口自动化测试框架  基于python+requests+pytest实现...

Postar

接口测试工具,基于python+requests+pytest实现。

特点

Postar makes it easier to interface testing more quickly and with less code.

————改编自django

对比postman、robot framework、jmeter等,本工具有以下特点:

只需要会一点点python就能使用

逻辑控制更灵活,for while if 想怎么用就怎么用

取值简单,随机值,数据库值,接口响应值,一行或几行代码就能取到

参数化直接,在json中用变量直接做参数化

语法简洁,不用单独记忆关键字,不用”填表式“编程,原生python更快速

调试方便,代码级调试更容易定位脚本问题

场景覆盖全,文本框遍历、parewise组合参数算法等,能覆盖更多的参数情况

安装

安装python3

安装依赖

pip install -r requirements.txt

安装pycharm

工具怎么用

很简单

在case下新建test.py

# test.py

from case.basecase import BaseCase

from common.request import Request

class TestClass(BaseCase):

def test_method(self):

req = Request()

r = req.post({

"url": "",

"headers": {},

"body": {}

})

self.check_flag(r)

就可以创建一个请求的用例。

点击左侧的run图标就可以运行这条用例了:

关于名字

postar = post + ar

post,指postman的替代工具

ar,Automated Regression,自动化回归的意思

工具说明

目录结构

Postar

----case 用例

----common 公共

----config 配置

----data 数据

----result 结果

简洁明了的风格

用例命名

from case.basecase import BaseCase

from common.request import Request

class TestClass(BaseCase):

def test_method(self):

req = Request()

r = req.post({

"url": "",

"headers": {},

"body": {}

})

self.check_flag(r)

class需要以Test开头,method需要以test开头,才能被pytest识别出来。

参数组装

url、headers、body均以json格式组装。

{

"url": "",

"headers": {},

"body": {}

}

headers若为{},则发请求时默认为 {"Content-Type": "application/json"}

用户自定义变量

这里只提供一种建议用法。实际写脚本时可以有很大的灵活性。

在实际项目中,需要对数据做参数化处理,一是复用,二是统一。

本用法借鉴了jmeter的组织方式:

目录

case 用例

----demo 项目

--------suite1 用例组1

--------suite2 用例组2

文件

与目录同名的文件,为用户自定义变量。

文件间的关系如图

这样用例只需要from demo import *就可以用到所有变量了。

# test_a.py

from case.demo.demo import *

可以把demo.py视为demo项目的全局变量。由于是面向对象设计,可以在demo.py中把对象初始化好,供用例使用。

# demo.py

from case.basecase import BaseCase

from .suite1.suite1 import *

from .suite2.suite2 import *

from common.request import *

s1 = Suite1() # s1为suite1的用户自定义变量

s2 = Suite2() # s2为suite2的用户自定义变量

req = Request()

用例import全局变量后直接用s1 s2 req等对象就可以了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。