Quickstart¶
接口测试,是这个测试脚手架被搭建的初衷。所以代码的没有做到小而美。 秉承着一贯的原则,还是先看我们的范例吧
范例¶
接口基础测试
postman_collection
测试数据放置于 ./srcdata/
目录中
>>>import BlueTest
# xxx为测试文件test.json.postman_collection 名称。BlueTest.initPostMan("test")
# 初始化PostMan测试数据
>>>BlueTest.initPostMan("test") #test.json.postman_collection->test.csv
>>> - INFO: postman转csv成功:./srcdata/test.csv
#依赖test.csv执行接口测试
>>>BlueTest.testByCsvData("test")
>>> - DEBUG: CSV文件内容序列化成功:[{'Lv': '', 'Cname': '', ...
>>> - INFO: log exceptionCheck: 普通请求 ...
>>> - INFO: log exceptionCheck: ['date']为空 ...
>>> - INFO: log exceptionCheck: ['date']不传 ...
>>> - INFO: log extrasCheck: ['date'] 额外参数校验 ...
接口压力测试Demo1
import BlueTest,random
class pressTest(BlueTest.SoloPress): #继承压力测试基类BlueTest.SoloPress
def setup(self):
self.count = 单线程执行数
def runcase(self): #重写runcase方法
response = random.choice(["成功","失败"]) #设置模拟测试数据
self.file_write(self.name, response, BlueTest.toolbox.responseAssert(response)) #结果记录
press = BlueTest.Press(线程数)
press.run(pressTest) #执行测试
press.dataReduction() #统计、整理测试结果
>>> index:1, run:10% ,num:2
>>> index:2, run:10% ,num:2
>>> ...
接口压力测试Demo2
区别于Demo1的地方在于这个例子使用到了由 postman->csv
的文件。将压力测试与接口测试的数据耦合到一起,可以实现统一管理。
csv2dict = BlueTest.Csv2Dict(path="./srcdata/test.csv") #加载测试数据 需要填入完整相对/绝对路径
csv_data = csv2dict.run() #生成测试数据
apitest = BlueTest.apiTest(csv_data[0]) #实例化测试单体
class solopress(BlueTest.SoloPress):
def setup(self):
self.count = 单线程执行数
def runcase(self):
response = apitest.soloRequest()
self.file_write(str(self.num),response,apitest.responseAssert(response))
press= BlueTest.Press(线程数)
press.run(solopress)
press.dataReduction()
PS:更多使用方法详见函数说明