用python做http协议的api自动化测试一
来源:互联网 发布:ubuntu修改命令提示符 编辑:程序博客网 时间:2024/05/20 01:36
从开始对测试的毫无知觉到现在喜欢上这个职业我用了两年的时间,也算是入了测试的门。最钟爱的也就是接口的测试。也自己搞了一套接口的自动化,马马虎虎也能用。写在这楼里记录一下,当作说明文档,不介绍报告生成和测试数据处理。
用例格式
version: 2.3.2author: firelncreatetime: 2017-01-12setting: constenthost: &chost host: http:// doctorhost: &dhost host: http://caseinfo: - caseid: 1 casename: <<: *chost //对host的引用 api: /api/Assessment //host后跟的路由 method: post //接口请求类型 parames: { "Parames": [ { "UserId": 187, "AssessmentId": 2, "AssessmentKind": 2, "AssessmentName": "量表名称", "AssessmentUrl": "www.量表Url.com", "Mode": 1 } ], //传入接口固定参数 "Type": "body", //参数传入类型 "changeact": "False", //是否有要做修饰的参数 "changeactkey": "False", //要做修饰的参数的key "fixedact": "False", //是否要用到上个接口返回的数据 "fixedactkey": "False", //上个接口返回数据的key "RandomNum": "False" //具有唯一性的参数 } checkdata: { "checktype": "code",//结果检查类型 "checkdata": //预期结果 } ResponseSaveType: 0 //结果保存类型
用力的样子已经知道了,那么怎么把它拿出来呢?接下来介绍怎么获取用例。
1.安装第三方库PyYAML
直接pip装就可以了,建议用豆瓣镜像来装包,速度很理想例如PyYAML
pip install PyYAML -i https://pypi.douban.com/simple/
2.编写代码拿出用例
# -*- coding: utf-8 -*-__author__ = 'Fireln'""" @auther : Fireln @time : """import osimport yamlclass GetCase: def __init__(self,casefilepath): self.casefilepath = casefilepath @property def openfile(self): """ :return:用例配置文件 """ try: casefile = open(self.casefilepath,encoding='utf-8') return casefile except Exception as e: print(__file__,"openfile函数出错",e) @property def getcaseinfo(self): """ :return:用例信息 """ file = self.openfile setting = yaml.load(file) caseinfo = setting['caseinfo'] file.close() return caseinfo def getlen(self): """ :return:用例条目 """ caseinfo = self.getcaseinfo length = len(caseinfo) return length def getcase(self,i,function): """ 获取用例底层方法 :param i: :param function:子类处理用例的方法 :return: """ caseinfo = self.getcaseinfo case = caseinfo[i] caseid = case['caseid'] casename = case['casename'] host = case['host'] api = case['api'] method = case['method'] parames = case['parames'] checkdata = case['checkdata'] ResponseSaveType = case['ResponseSaveType'] parame = function(parames) #使用处理函数处理参数,这个不用在意,是参数的处理方法,上面的用例也有讲到有些参数是需要处理的。下一篇会讲到 #print(caseid,casename,host,api,method,parames,checkdata,ResponseSaveType) return caseid,casename,host,api,method,parame,checkdata,ResponseSaveTypeif __name__ == '__main__': o = GetCase() for i in range(6): o.getcase(i)
这样就把用例拿出来了,下一篇介绍参数处理
0 0
- 用python做http协议的api自动化测试一
- 用python做http协议的api自动化测试二
- 用python做http协议的api自动化测试三
- 用python做自动化测试--对服务器端的自动化测试(3)-更多http client实例
- python unittest做api自动化测试
- 用python做自动化测试--对服务器端的自动化测试(2)-发送端Http Client模拟器
- 用python做自动化测试--对服务器端的自动化测试(4)-接收端Http Server模拟器
- HTTP API自动化测试
- 用pytest做服务端自动化协议测试
- 用python做自动化测试--Monkeyrunner 几个问题的解决方案
- 用python做自动化测试--对服务器端的自动化测试(1)-系统架构
- 用python做自动化测试--数据库的自动化测试(1)
- 用python做自动化测试--数据库的自动化测试(2)
- 测试HTTP接口的python自动化脚本
- 用python做自动化测试--序
- 用jmeter做http协议的接口测试
- 用python做自动化测试--Andriod App 的自动化-Appium的那些坑
- Python-Selenium2做Web自动化测试(4)-对象的定位
- 无用?
- 静态链接器构造
- 常见对象-String类
- Pyhton学习之条件语句
- Means to remember
- 用python做http协议的api自动化测试一
- JavaScript转义
- python错误之IndentationError
- SpringMVC国际化设置
- 分布式服务化系统一致性的“最佳实干”
- java 复制文件夹
- 模拟 Help Me with the Game 2996
- 实验三 无损数据压缩编解码实验(LZW编解码)
- Latex