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

中企动力 网站建设 眼镜公司网站荣誉墙怎么做

中企动力 网站建设 眼镜,公司网站荣誉墙怎么做,什么网站做贸易好,做百度推广设置网站统计simple-pytest 框架使用指南 一、框架介绍简介框架理念#xff1a;框架地址 二、实现功能三、目录结构四、依赖库五、启动方式六、使用教程1、快速开始1.1、创建用例#xff1a;1.2、生成py文件1.3、运行脚本1.3.1 单个脚本运行1.3.2 全部运行 1.4 报告查看 2、功能介绍2.1、… simple-pytest 框架使用指南 一、框架介绍简介框架理念框架地址 二、实现功能三、目录结构四、依赖库五、启动方式六、使用教程1、快速开始1.1、创建用例1.2、生成py文件1.3、运行脚本1.3.1 单个脚本运行1.3.2 全部运行 1.4 报告查看 2、功能介绍2.1、单个接口http请求与断言2.2、长链路业务http请求与断言2.3、数据库断言2.4、变量设置2.4.1、全局变量2.4.2 系统配置变量 2.5 前后置处理2.6 环境配置切换2.7 文件读取2.8 通知 一、框架介绍 简介 simple-pytest 框架主要参考了httprunner的yaml数据驱动部分设计思路是基于 Pytest Pytest-html Log Yaml Mysql 实现的简易版接口自动化框架。与httprunner不同的是httprunner是个封装好的工具包simple-pytest 是半封装的脚本目的是让用户自己更容易学习Pytest工具理解框架设计。 框架理念 1、一个yaml就是一个接口包含了接口的请求断言等信息。 2、脚本执行使用pytestpython代码做逻辑处理更加方便喜欢写代码的同学 3、让新手同学更加全面的理解pytest框架 4、为了 在学这个框架前必备的一点常识是 1、python基础语法 2、pytest基础包括用例执行夹具使用等 框架地址 gitee: https://gitee.com/itestxs/simple-pytest 二、实现功能 yaml数据驱动实现数据驱动隔离用例标签在py脚本中可以通过case_tag做用例过滤全局变量池实现接口之间的关联取值多断言支持!等多种断言支持jsonpath的取值方式sql数据库断言: 直接在yaml测试用例中写入查询的sql即可断言无需编写代码自动生成用例代码: 在yaml文件中填写好测试用例, 可以转换为py脚本。 三、目录结构 - config 项目配置文件redismysql等 - data 测试数据文件管理 - logs 日志记录 - reports 结果报告包括html - test_cases 测试用例 ├── confset.py 测试夹具 - utils 各种工具类├── assertion 断言工具 - pytest.ini pytest配置文件 - conftest.py 全局夹具配置 - requirements.txt 相关依赖包文件 - run.py 执行用例入口文件四、依赖库 requests2.28.1 jsonpath0.82 fastapi0.88.0 pymysql1.0.2 pyyaml5.4.1 pytest7.4.3 pytest-html4.1.1 py1.11.0五、启动方式 1、先安装pip install requirements.txt 2、启用utils下的shopping_mock模块 3、运行run.py文件然后查看report的结果报告即可。 六、使用教程 1、快速开始 1.1、创建用例 在data目录下创建yaml文件 主要的字段格式如下 title接口名字 base_url域名地址不填则默认取得setting的BASE_URL如果填写了则直接获取填写的 path接口请求地址 method请求方法 request_data统一的请求参数比如headers cases测试用例集合 case_name测试用例名字支持多个case_name年编写 case_tag支持参数avl、dis、only 不填则为avl。其中avl就是可用的意思dis不可用only是代表只有当前用例生效。如果只传入only则其他用例则不被执行优先级是onlydisavl。也可以自定义打tag json接口的请求体可以直接输入字典格式自动生成的用例不是字典格式。请注意yaml的格式 params接口的url请求参数。待补充用例 assert断言status_code是断言请求状态码。$.data是jsonpath的表达式目前仅支持改表达式写法。目前支持的断言方式请在assert_type.py里查看包含大于、不等于、等于一系列判断 sql该case关联的sql可以将该sql用来做前置还是以及后置 extract_sql提起该sql的返回内容的某个字段存在变量池中$.id 也是jsonpath表达式 assert_sqlsql的断言用法同assert yaml 模板用例如下 title: 查询商品 base_url: $config{BASE_URL} path: /items method: GET request_data:headers:Content-Type: application/jsontoken: $global{token}cases:- case_name: 搜索-正常# case_tag 支持参数avl、dis、only 不填则为avl如果只传入only则所有case 只会返回only的数据也可以自定义打tagcase_tag: avlassert:- eq: [ status_code, 200 ]- ne: [ $.data, ]sql: select * from projectInfo where projectbm-scmextract_sql:id: $.idassert_sql:- eq: [ $.id, 1 ]- case_name: 搜索-超出范围case_tag: avlparams: page2limit10assert:- eq: [ status_code, 200 ]- eq: [ $.data, [] ]# login.yaml title: 登录 path: /login method: POST request_data:headers:Content-Type: application/jsoncases:- case_name: 登录-正常# case_tag 支持参数avl、dis、only 不填则为avl如果只传入only则所有case 只会返回only的数据也可以自定义打tagcase_tag: avljson: {username: user1, password: password1}extract:token: $.tokenassert:- eq: [status_code, 200]- ne: [$.token, ]- case_name: 登录-用户名为空case_tag: avljson: { username: , password: password1 }assert:- eq: [status_code, 401]- eq: [$.detail, Invalid username or password]1.2、生成py文件 在utils目录下的yaml_to_py文件main修改yaml_to_pys批量转换整个data文件夹下的yaml文件yaml_to_py转换指定的yaml文件参数cover代表是否覆盖传入true则会覆盖你现有的。 if __name__ __main__:yaml_to_pys()# yaml_to_py(login.yaml)case_datas 为自动获取测试用例集可以通过get_case_data(case_tag“tag”)中的case_tag去过滤特定标签用例。 1.3、运行脚本 1.3.1 单个脚本运行 每个执行py脚本都可直接右击执行 1.3.2 全部运行 点击运行run文件可以通过testenv 参数指定获取哪个环境的配置。 1.4 报告查看 如果是单个配置则直接在当前test_cases目录下就可以看到如果是run脚本执行则报告统一放在reports 目前的报告格式是pytest-html。如果要用allure则可以自己修改使用。 2、功能介绍 2.1、单个接口http请求与断言 response HttpRequest.simple_request(case_data)Assert(response, case_data.get(assert)).assert_util#!/usr/bin/env python # -*- coding: utf-8 -*-import pytestfrom utils.assertion.assert_util import Assert from utils.http_request import HttpRequest from utils.read_file_data import ReadFileDataclass TestLogin():case_datas ReadFileData(login.yaml).get_case_data() # get_case_data(tag) 自定义tag输入pytest.mark.parametrize(case_data, case_datas, idsgenerate_ids(case_datas))def test_login(self, case_data):response HttpRequest.simple_request(case_data)Assert(response, case_data.get(assert)).assert_utilif __name__ __main__:pytest.main([test_login.py])2.2、长链路业务http请求与断言 该功能是添加购车然后付款的流程。 彼此之间有接口依赖问题通常解决依赖问题有两种 第一种使用框架自带的merge_cases_data函数 test_data merge_cases_data(add_carts_data, order_pays_data) # 将多个用例合并。merge_cases_data 是依赖接口合并有两个默认规则如果两个接口用例数一样多的如[x,y],[A,B]那用例合并后结果就是[x,A] ,[y,B]如果两个接口用例数不一样如[x] [A,B]那结果就是[x,A],[x,B]如[x,y] [A]那结果就是[x,A],[y,A]。第二种自己编写代码逻辑。 每个yaml就是一个接口。获取每个yaml的接口数据然后获取用例后if else逻辑。如果接口之前有变量依赖请借助全局变量去取。 import pytestfrom utils.assertion.assert_util import Assert from utils.http_request import HttpRequest from utils.merge_cases import merge_cases_data, generate_ids from utils.read_file_data import ReadFileDataclass TestAddPay():add_carts_data ReadFileData(add_carts.yaml).get_case_data() # get_case_data(tag) 自定义tag输入order_pays_data ReadFileData(order_pays.yaml).get_case_data()test_data merge_cases_data(add_carts_data, order_pays_data) # 将多个用例合并print(testdata,test_data)pytest.mark.parametrize(add_carts_data,order_pays_data, test_data, idsgenerate_ids(test_data,merge))def test_add_pay(self, add_carts_data, order_pays_data):add_carts_response HttpRequest.simple_request(add_carts_data)# print(add_carts_response.json())Assert(add_carts_response, add_carts_data.get(assert)).assert_utilorder_pays_response HttpRequest.simple_request(order_pays_data)# print(order_pays_response.json())Assert(order_pays_response, order_pays_data.get(assert)).assert_utilif __name__ __main__:pytest.main([test_add_pay.py])2.3、数据库断言 需要提前在config配置settings的MYSQL_CONFIG参数 data SqlRequest.sql_request(case_data) Assert(data, case_data.get(assert_sql)).sql_assert_util如果要讲数据库字段提取出来则写在 GlobalVars.update_global_vars(key“data”, valuedata) # 将参数手动添加到公共变量中 import jsonimport pytestfrom utils.assertion.assert_util import Assert from utils.global_vars import GlobalVars from utils.http_request import HttpRequest from utils.read_file_data import ReadFileData from utils.sql_reqeust import SqlRequestclass TestSearch():case_datas ReadFileData(search_items.yaml).get_case_data() # get_case_data(tag) 自定义tag输入print(case_datas)pytest.mark.parametrize(case_data, case_datas, idsgenerate_ids(case_datas))def test_search_items(self, case_data):response HttpRequest.simple_request(case_data)print(response.json())Assert(response, case_data.get(assert)).assert_util# demo1-数据库断言写法# from utils.mysql_manager import db # 注意一定要在测试用例中引用要不然会连接不上数据库# data db.select_db(select * from projectInfo where projectbm-scm)# print(data,data)# GlobalVars.update_global_vars(keydata, valuedata) # 将参数手动添加到公共变量中# assert data[id] 1# demo2-数据库断言写法data SqlRequest.sql_request(case_data)print(data, data)GlobalVars.update_global_vars(keydata, valuedata) # 将参数手动添加到公共变量中Assert(data, case_data.get(assert_sql)).sql_assert_utilif __name__ __main__:pytest.main([test_search_items.py])2.4、变量设置 主要的变量有两种一个是全局变量主要是接口数据库字段等值的传参使用。一个是配置变量拿去配置里的信息。 2.4.1、全局变量 使用用法使用$global{}关键字获取 $global{token} 以上例子是获取全局变量中token的变量 注意全局变量如果命名重复会导致值被替换请使用不同的变量名。 2.4.2 系统配置变量 配置变量获取的是config里的setting值启动的时候会自动获取当前环境的配置 $config{BASE_URL} 2.5 前后置处理 目前前后置处理由用户自己处理较为常用的用法是使用pytest的夹具功能 2.6 环境配置切换 使用testenv参数即可切换生产以及测试环境的配置。默认不填的情况下使用的是测试环境的配置。配置读取的是settings里的信息 2.7 文件读取 read_file_data提供函数支持读取json、yaml、csv、txt等文件 2.8 通知 在config settings下配置project、feishu_key信息运行run脚本即可发送飞书通知注意只有运行run脚本才可以发送飞书通知
文章转载自:
http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn
http://www.morning.lbrwm.cn.gov.cn.lbrwm.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.mdgb.cn.gov.cn.mdgb.cn
http://www.morning.ccffs.cn.gov.cn.ccffs.cn
http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn
http://www.morning.skscy.cn.gov.cn.skscy.cn
http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn
http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn
http://www.morning.rbgwj.cn.gov.cn.rbgwj.cn
http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn
http://www.morning.qbjrl.cn.gov.cn.qbjrl.cn
http://www.morning.chzbq.cn.gov.cn.chzbq.cn
http://www.morning.gkpgj.cn.gov.cn.gkpgj.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.zsrdp.cn.gov.cn.zsrdp.cn
http://www.morning.ybmp.cn.gov.cn.ybmp.cn
http://www.morning.yznsx.cn.gov.cn.yznsx.cn
http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn
http://www.morning.ryfpx.cn.gov.cn.ryfpx.cn
http://www.morning.wjplm.cn.gov.cn.wjplm.cn
http://www.morning.hrydl.cn.gov.cn.hrydl.cn
http://www.morning.xfxqj.cn.gov.cn.xfxqj.cn
http://www.morning.lmyq.cn.gov.cn.lmyq.cn
http://www.morning.tlfzp.cn.gov.cn.tlfzp.cn
http://www.morning.mkfhx.cn.gov.cn.mkfhx.cn
http://www.morning.wmsgt.cn.gov.cn.wmsgt.cn
http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn
http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn
http://www.morning.fhqsm.cn.gov.cn.fhqsm.cn
http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.plznfnh.cn.gov.cn.plznfnh.cn
http://www.morning.xqcst.cn.gov.cn.xqcst.cn
http://www.morning.rkzk.cn.gov.cn.rkzk.cn
http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn
http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn
http://www.morning.kryr.cn.gov.cn.kryr.cn
http://www.morning.zcqgf.cn.gov.cn.zcqgf.cn
http://www.morning.tcpnp.cn.gov.cn.tcpnp.cn
http://www.morning.xkwyk.cn.gov.cn.xkwyk.cn
http://www.morning.btwrj.cn.gov.cn.btwrj.cn
http://www.morning.pswzc.cn.gov.cn.pswzc.cn
http://www.morning.txkrc.cn.gov.cn.txkrc.cn
http://www.morning.lbjdx.cn.gov.cn.lbjdx.cn
http://www.morning.ydhck.cn.gov.cn.ydhck.cn
http://www.morning.ksqyj.cn.gov.cn.ksqyj.cn
http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn
http://www.morning.jnhhc.cn.gov.cn.jnhhc.cn
http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn
http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn
http://www.morning.mmxt.cn.gov.cn.mmxt.cn
http://www.morning.china-cj.com.gov.cn.china-cj.com
http://www.morning.nfcxq.cn.gov.cn.nfcxq.cn
http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn
http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn
http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn
http://www.morning.srky.cn.gov.cn.srky.cn
http://www.morning.fdjwl.cn.gov.cn.fdjwl.cn
http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn
http://www.morning.bjsites.com.gov.cn.bjsites.com
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.kcyxs.cn.gov.cn.kcyxs.cn
http://www.morning.fpxms.cn.gov.cn.fpxms.cn
http://www.morning.zwndt.cn.gov.cn.zwndt.cn
http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn
http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn
http://www.morning.drnfc.cn.gov.cn.drnfc.cn
http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn
http://www.morning.snkry.cn.gov.cn.snkry.cn
http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn
http://www.morning.psxcr.cn.gov.cn.psxcr.cn
http://www.morning.skkmz.cn.gov.cn.skkmz.cn
http://www.morning.nzmw.cn.gov.cn.nzmw.cn
http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn
http://www.morning.lbssg.cn.gov.cn.lbssg.cn
http://www.morning.rbzd.cn.gov.cn.rbzd.cn
http://www.morning.ruifund.com.gov.cn.ruifund.com
http://www.morning.jftl.cn.gov.cn.jftl.cn
http://www.tj-hxxt.cn/news/244423.html

相关文章:

  • 网站个性化常熟做网站
  • 县城做信息网站赚不赚钱链接检测工具
  • 宣汉县建设局网站网络服务器机柜厂家
  • 网站做要钱如何在社交网站上做视频推广
  • 网站开发项目拖延周期中国最大的网络公司是哪个
  • 中山网站建设怎么样中国建设招标网站首页
  • 专业商城网站建设价格低小语种网站怎么设计
  • 广东网站制作多少钱东莞阳光网站
  • 四川人防工程建设网站wordpress可以删除版权么
  • 一个完整的网站推广方案做淘宝联盟必须要有网站吗
  • 怎样才能建设网站微信小程序商城多少钱
  • 北海网站网站建设营销推广有哪些步骤
  • 怎么做一个网站的logo设计图wordpress增加内存
  • 网站建设扌首选金手指电商网站开发文档
  • 广州网站设计成功刻网页制作题用什么软件
  • 网站开发包括什么网站标识描述可以填关键词吗
  • 做平面设计素材的哪个网站好google地图 wordpress
  • 技术支持 创思佳网站建设招聘网站竞品分析怎么做
  • 保定市城乡建设局官方网站长沙电商优化
  • 网站添加备案信息外贸企业网站模板
  • 开网店 建网站要钱吗管理网站模板下载免费下载
  • 自己做网站页面长沙网站设计公司排名
  • 网站优化要用什么软件手机网站怎么做微信登陆
  • 做期货在哪个网站看消息学校做网站及费用
  • 几十元做网站深圳公司排名榜
  • 织梦网暂时关闭网站青岛优化网站多少钱
  • 成都平台网站建设公司seo技术软件
  • 宿迁网站建设与管理如何判断网站是否被百度降权
  • 网站后台的建设页面设计包括哪些
  • linux下网站建设wordpress文章自定义栏目