在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
request介绍接口测试 软件架构
pip install requestQ #使用 1.基本组成
1.1 样例from requestQ import item,Case,Casesitem1=item("name1",data1).expect('data.code').toBe(1).expect('data.status').toBeTruthy().save('data.token','token')item2=item("name1",{"aaa":"asdada${token}"}).expect('data.code').toBe(1).expect('data.status').toBeTruthy()...Cases(Case("casename",item1,item2,...),Case(xxxx)) 2.dorequest使用from requestQ.package.dorequest import DoRequestreq= DoRequest()# DoRequest 主要有三个方法# 1. add_session_headers(header:dict) 添加公共的请求头,类似cookie# 2. run(method: str, url: str, data=None, is_auto=True, **kwargs) 进行请求校验# 3. commit() 对请求进行提交# DoRequest 主要有三个常量# req.status 查看执行状态# req.e 查看执行错误# req.is_commit 查看是否提交 2.1 add_session_headers的使用#填写dict格式的请求头即可req. add_session_headers({"cookie":"asdadad12123123"}) 2.2 run的使用#样例对百度进行访问req.run("get","http://www.baidu.com")#参数说明# method 请求方法 get post 等,必填# url 请求链接,必须要添加http或者https,必填# data 请求体内容,支持dict格式,str格式,"xxx=yyy&sss=www"的格式,选填# is_auto 是否自动提交,默认自动,即run方法后不需要再添加commit方法# kwargs dict格式,选填,支持的名字暂时有:# files 格式str,上传文件的路径 # file_name 格式str,用于设置上传文件名称,不填默认文件名称# headers 格式dict,{xxx:yyy,sss:www} 设置请求头# session_headers 格式dict,{xxx:yyy,sss:www} 设置通用请求头# proxies 设置请求代理 格式 ip:port 2.3 commit的使用req.commit()#返回提交的结果或者报错 3 item使用from requestQ import itemitem(name: str, data: dict, des='', func: str = 'http', priority='中')#参数说明# name 此条请求的名称,标识,唯一值,必填# data dict格式,内容是func对应的参数,为了方便以后扩展使用,当前输入请求参数# des 此条请求的描述,无相关作用,只是描述而已# func str格式,默认是http请求,可扩展成mysql等# priority str格式,没有作用,只是标注优先级,待报告中显示使用# item主要有八个方法# run(func) 此处是调试时使用,类似使用 item(xxx).run(Dorequest())# debug(func) 此处是调试时使用,类似使用 item(xxx).debug(Dorequest()),中间有停顿,方便查看数据数据# addLocal(local: dict, glo: dict) 此处添加本地变量和总变量,格式必须是加在run和debug之前# save(catch: str, name: str, method: str = 'json', is_global=False)保存值到变量数据中# expect(catch: str, method: str = 'json') 提取结果的值,用户后续处理,主要方法!# print_log() 打印出运行日志# do_req(func) func(请求值,本地变量,公共变量),在run之前定义方法,提前处理请求的值# do_res(func) func(结果值,本地变量,公共变量),在run之前定义方法,在校验前处理结果值#item还有协助的方法,不参与用例,只是方便编写data的值# fetch(url, data, replace=None)# 使用方法,chrome浏览器中,在network中找到需要的请求,右击-复制-复制为fetch,#然后直接黏贴,删除分号就可以使用,返回值为请求的data值,缺陷是无法获取到cookie的值#raw(str) #使用方法,类似fiddler抓包,在raw页面,全选-复制,使用raw('''xxxx'''),黏贴即可解析过data的值 3.1 run/debug 的使用item(name: str, data: dict, des='', func: str = 'http', priority='中').run(Dorequest())item(name: str, data: dict, des='', func: str = 'http', priority='中').expect('data.code').toBe(1).debug(Dorequest())#此时就直接运行脚本,查看结果#此处的data可以支持参数化,格式为:${xxxx},这个xxxx的值为环境变量的key 3.2 addLocal的使用item(name: str, data: dict, des='', func: str = 'http', priority='中').addLocal({"a":1},{"b":2}).run(Dorequest())#此处添加变量中的参数 3.3 save的使用#样例item(name: str, data: dict, des='', func: str = 'http', priority='中').save("data.token","token").run(Dorequest())#运行后,在localdict中添加了key为token,value为结果提取的值#参数说明save(catch: str, name: str, method: str = 'json', is_global=False)#catch 抓取的方式:例如结果为{“data”:{"status":1,"list":[{"s":1},{"d":2}]}}#取status的值为:data.status#取s的值为 data.list.0.s#name是暂存的值得key#method是提取的方法,模式使用json模式,就是上述样例中的方法;还有regex和size#regex是正则提取的方法,类似于xxx(.\+)1313#size是直接返回值得长度 3.4 print_log的使用item(name: str, data: dict, des='', func: str = 'http', priority='中').run(Dorequest()).print_log()#打印出日志信息 3.5 expect的使用#样例item("name1",{"aaa":"asdada${token}"}).expect('data.code')#参数说明,参考save#expect就是把值取出来,然后进行比较,比较的方法有:#toBe(val)、notToBe(val)、notToBeNone()、toBeNone()、toBeTruthy()、toBeFalsy()、#toBeGreaterThanOrEqual(num)、toBeGreaterThan(num)、toBeLessThan(num)、toBeLessThanOrEqual()#toMatch(val)、notToMatch(val)、toContain(val)、notToContain(val)#上述val为值,任何格式的值;num为数字;Match的val是正则 4 Case/Cases的使用Case("casename",item(xxxx))#Case 就是完整的一个用例的概念,有一个或者多个item组成#参数说明:#name,用例的名称#items ,任意数量的item#主要方法有两个:# add_source(source, name) 用于扩展后续方法使用# run( allow_print_detail=[], allow_print_res=True) 用于运行item 4.1 add_source的使用#样例Case(xxx).add_source(Domysql(),"mysql")#用于后期扩展 4.2 run的使用#样例Case(xxx).run()#参数说明# allow_print_detail 格式:list,输入item的名字,显示具体的日志,默认不显示,选填# allow_print_res 模式True,显示简单的运行结果,选填Cases(Case(xx)...)#运行执行的用例,无方法 安装教程
使用说明
参与贡献
码云特技
|
请发表评论