当前位置: 首页 > news >正文

学校网站建设分工北京服装设计公司排名前十强

学校网站建设分工,北京服装设计公司排名前十强,wordpress oss,关于网络的网站怎么做引言#xff1a;目前软件测试对测试人员的能力要求 业务测试能力#xff1a;占比5-6成接口、自动化、性能测试能力#xff1a;占比4-5成流程规范#xff1a;1成#xff08;需要综合型的测试人才#xff09;#xff1a;业务能力、代码能力、开发思维#xff08;封装目前软件测试对测试人员的能力要求 业务测试能力占比5-6成接口、自动化、性能测试能力占比4-5成流程规范1成需要综合型的测试人才业务能力、代码能力、开发思维封装 接口测试工具 postmanNewmanJenkins jmeterantJenkinsapifoxapifox-cliJenkins接口测试框架 pythonrequestspytestallureyamlloggingJenkins框架1、全面熟练Requests以及底层方法调用逻辑 1.1导入requests第三方库 import requests python3中必须先安装requests模块使用命令为pip install requests1.2底层逻辑 第一层调用 def get(url, paramsNone, **kwargs)url接口地址params参数在get请求的url后面传的参数**kwargs可变长度的字典def post(url, dataNone, jsonNone, **kwargs)url接口地址data参数表单/表格参数对应postman的 x-www-form-urlencodejson参数rawapplication/jsonpostman的四种传参方式1.form-data既有表单也有文件上传 files2.x-www-form-urlencode纯表单格式data3.rawjsonapplication/json传json格式的参数json4.binaryapplication/octrent-stream(二进制文件) data**kwargs可变长度的字典def put(url, dataNone, **kwargs):url接口地址data参数**kwargs可变长度的字典 def delete(url, **kwargs):url接口地址**kwargs可变长度的字典 第二层调用上面的4个方法其实都是调用的request方法requests.request() def request(method, url, **kwargs): 第三层调用requests.request()调用的是session.request方法 session.request(methodmethod, urlurl, **kwargs) 第四层调用最终调用的是request()  def request(self, method,                 请求方式url,                    请求路径paramsNone,            params参数dataNone,              data参数headersNone,          请求头cookiesNone,          cookies信息filesNone,             文件上传authNone,              鉴权timeoutNone,          超时allow_redirectsTrue, 重定向proxiesNone,         设置代理hooksNone,             钩子streamNone,          文件下载verifyNone,            证书验证certNone,          CA证书jsonNone):         json参数 1.3requests.request() 和 session.request() 的区别 我们实际工作中一般都是用 session.request() 去进行接口测试 前者的每个请求都是独立的后者会自动去关联所有请求的cookie信息。class TestRequestApi():Authorizationsess requests.session()def test_login(self):url https://xxxx/wzlApp/usersLogin/loginheaders {App-Version:3.6.9}data {phone:RwP%2BH9D9DTgD1Qf0j7J%2B3A,password:kKe2zs5e7SF%2BuzDkBeFLLQ}# 通过session的方法调用res TestRequestApi.sess.request(post,urlurl,datadata,headersheaders)print(res.json())TestRequestApi.Authorization res.json()[data][token] 1.4Requests响应部分  res.text返回字符串形式的结果res.json()返回字典形式的结果res.content返回字节类型的结果res.status_code返回状态码res.reason返回状态信息res.cookies返回cookie信息res.encoding返回编码格式res.headers返回响应头res.request.xxx得到请求数据 2、requests接口自动化测试实战 2.1接口关联的三个层次 通过类变量保存中间变量实现接口关联 ----不建议用这个方式通过单独的文件保存中间变量实现接口关联极限封装成零代码的方式实现接口关联 2.2接口关联的两种方式 1. 正则提取 re.search() 通过正则匹配一个值用下标[1]取值如没有匹配到则返回None re.findall() 通过正则匹配多个值返回的是list用下标取值如没有匹配到则返回None 一般在text文本中用正则提取 第一个是正则token: (.*?) 第二个是字符串对象res.json() 通过下标[1]提取对应的值 token re.search(token: (.?),res.text).group(1) print(这是正则提取出来的token) re 需要先导包再引入 2. JsonPath提取  jsonpath.jsonpath()  返回的是list用下标取值如没有匹配到则返回None         $ 表示根目录         如就在根目录下则直接用.名称提取res.json(),$.data                到前面的res.json()对象中通过表达式$.data取值         如有嵌套的话res.json(),$.[data][token]                  通过下标提取对应的值         print(data[0]) jsonpath需要先导包再引入 data jsonpath.jsonpath(res.json(),$.data[token]) # $ 表示根目录# 就在根目录下则直接用.名称提取res.json(),$.data# 到前面的res.json()对象中通过表达式$.data取值# 有嵌套的话res.json(),$.[data][token]# 通过下标提取对应的值print(data[0])import requests import jsonpathclass TestRequestApi():Authorizationdef test_login(self):# self,代表当前类的对象# 方法通过对象调用 TestRequestApi().test_login()# method: posturl https://xxxx/wzlApp/usersLogin/loginheaders {App-Version:3.6.9}data {phone:RwP%2BH9D9DTgD1Qf0j7J%2B3A,password:kKe2zs5e7SF%2BuzDkBeFLLQ}res requests.post(urlurl,datadata,headersheaders)print(res.json())TestRequestApi.Authorization res.json()[data][token]# $ 表示根目录# 就在根目录下则直接用.名称提取res.json(),$.data# 到前面的res.json()对象中通过表达式$.data取值# 有嵌套的话res.json(),$.[data][token]data jsonpath.jsonpath(res.json(),$.data[token])print(-----登录-----哈哈哈哈哈哈哈哈)print(这是直接获取的token TestRequestApi.Authorization)print(data[0])def test_notice(self):url https://xxxx/wzlApp/users/insertUserFeedbackheaders {App-Version:3.6.9,Authorization: TestRequestApi.Authorization}data {feedback:通过接口自动化脚本提交的意见反馈数字符--xxxx---测试。。通过接口自动化脚本提交的意见反馈数字字符--xxxxx---测试。。}res requests.post(urlurl,datadata,headersheaders)print(-----意见反馈-----哈哈哈哈哈哈哈哈)print(res.json())def test_upload(self):url https://xxxx/commonApi/upload/uploadPrivateheaders {App-Version: 3.6.9,Authorization: TestRequestApi.Authorization}data {file:open(D:/Scripts/workspace/demo/results/image/logo.png,rb)}res requests.post(urlurl, filesdata, headersheaders)print(-----上传文件接口-----哈哈哈哈哈哈哈哈)print(res.json()) 3、接口自动化测试框架的封装统一请求封装 1. 去重很多重复的、冗余的代码 2. 实现统一的异常处理以及日志监控  PS: 封装的一般放在common包中~~~ requests_util.py自定义 ---当该py文件被引用或者类被其他模块引用时意味着导入这个类的所有用例会导致用例的执行冗余 通过类变量保存中间变量实现接口关联 ----不建议用这个方式见上  2.1 解释所以变量一般不要定义为类变量如果该变量被其他模块导入并执行时也会执行该类的用例。 ---可能写的有点乱但希望意思能表达清晰。
http://www.hkea.cn/news/14278042/

相关文章:

  • 郑州建设网站设计自己做门户网站
  • 大连建站费用seo单页面优化
  • 最专业微网站多少钱宜宾注册公司
  • 中山网站建设开发长沙建站标协助找有为太极
  • 移动商城积分和积分区别唐山seo
  • 制作网站的模板网站属性
  • 网站推广软件ky99网站建设费用大概多少
  • 网站开发维护承担的法律责任什么网站可以做数据图
  • 做视频网站适合用什么服务器宜宾长宁网站建设
  • 自己如何建设个网站首页wordpress中用户注册
  • 白银网站seo一级a做爰片免费网站神马电影
  • 福田祥菱m2怎么样重庆做网站seo优化选哪家好
  • 来个网站吧好人一生平安百度贴吧电商首页设计思路
  • 电商网站建设与运营方向云南省建设工程信息服务平台
  • 商城网站开发业务网站flash引导页下载
  • 网站建设公司客户开发手册网站建设自查自评报告
  • 06628 网页制作与网站开发app推广拉新
  • 的网站制作网站开发的实施方案
  • 怎么注册英文网站域名视网站亏损了为什么还做
  • 廊坊网站制作公司排名网站 模板下载
  • 南京网站建设哪家好新品发布会的流程
  • 西宁市城中区建设局网站网站开发流程有哪几个阶段
  • dwcc网站前台脚本怎么做音频wordpress 手机验证码插件
  • 杭州城市建设网站如何制作网站教程
  • 免费移动网站建设做网站答辩
  • 融资网站建设建设工程网站有哪些
  • 国外采购网站大全建设银行信用卡管理中心网站首页
  • 怎么在中国做网站网站温州网站关键词排名
  • 网站公司怎么找客户阳泉网站建设公司
  • 网络推广哪个网站好自助免费建网站