tag 标签: 版本

相关资源
  • 所需E币: 3
    时间: 2024-3-16 21:30
    大小: 936.72KB
    上传者: 电子阔少
    AD15版本3D封装库制作(STEP文件加载)和导出PCB的STEP模型
  • 所需E币: 0
    时间: 2023-12-16 12:41
    大小: 4.12KB
    一站式通关CKA证书-Kubernetes管理员认证(CKA)-Kubernetes管理员认证(CKA)计划的目的是提供CKA管理员具有执行Kubernetes管理员职责的技能﹑知识和能力的保证。这个CKA证书是云原生计算基金会CNCF组织的,比国内的一些含水量很大的证书强太多了。CKA证书是云原生计算基金会CNCF组织的,它考察的是你是否具备足够管理Kubernetes集群的必备知识。考试形式是上机直接在集群上操作,限时3小时,非常考验个人知识的扎实程度和Kubernetes实践经验。无论你上了什么课,考试报名费都是交给CNCF的,证书也是他们发的,只要考上75分,你就能拿到证书,也能学到不少知识。我们的配置文件已经写好了,后续新增的一些配置,都可以写在这个文件里,我们只要按需读取就可以了,那怎么来读取yaml文件中的数据呢?我们在common包下新建一个py文件,叫yaml_config.py,这个文件里会写一些读取配置文件相关的方法。一般在python中读取文件的内容,都是使用open这个方法。file=open("environment.yaml",encoding='utf-8')try: a=file.read() print(a)exceptExceptionase: print(e)finally: file.close()安装好以后我们开始正式写yaml_config中的方法。pyyaml读取了yaml后,会把yaml文件的内容转成python中字典的形式,这样我们就可以很方便的读取其中的某个值了。importyamlclassGetConf:  def__init__(self):    #withopen的第一个参数填写environment.yaml的绝对路径    withopen("/Users/fengzhaoxi/imooc/code/trading_system_autotest/config/environment.yaml","r")asenv_file:      self.env=yaml.load(env_file,Loader=yaml.FullLoader)      print(self.env)  defget_username_password(self):    returnself.env["username"],self.env["password"]    if__name__=='__main__':  GetConf().get_username_password()第二点:获取到了项目目录,下面我们需要把项目目录跟environment.yaml在项目中的相对路径拼接,拼接成environment.yaml的绝对路径。因为不同操作系统中的文件分隔符是不同的,所以在python中最好不要通过字符串去拼接分隔符,否则换了操作系统去运行可能就会出错,需要使用os.sep来添加分隔符,所以我们写一个方法defsep(path,add_sep_before=False,add_sep_after=False):  """  系统分隔符  Args:    path:路径列表,类型为数组    add_sep_before:是否需要在拼接的路径前加一个分隔符    add_sep_after:是否需要在拼接的路径后加一个分隔符  Returns:  """  all_path=os.sep.join(path)  ifadd_sep_before:    all_path=os.sep+all_path  ifadd_sep_after:    all_path=all_path+os.sep  returnall_path我们再回到yaml_config.py,我们获取environment.yaml的绝对路径,就是项目目录加上environment.yaml在项目中的项目目录。最后修改的完整方法如下importyamlfromtoolsimportget_project_path,sepclassGetConf:  def__init__(self):    project_dir=get_project_path()    withopen(project_dir+sep(['config','environment.yaml'],add_sep_before=True),"r")asenv_file:      self.env=yaml.load(env_file,Loader=yaml.FullLoader)      print(self.env)  defget_username_password(self):    returnself.env["username"],self.env["password"]if__name__=='__main__':  GetConf().get_username_password()备考难度不低,所以相关培训课程都不便宜。如果决心要考,准备一段时间反复看文档、做实验是必须的,CKA的学习曲线很陡峭,它更多靠的是个人自觉和毅力classLeftMenuBase:  deflevel_one_menu(self,menu_name):    """    一级菜单    :parammenu_name:    :return:    """    return"//aside[@class='el-aside']//span[text()='"+menu_name+"']/ancestor::li"  deflevel_two_menu(self,menu_name):    """    二级菜单    :parammenu_name:    :return:    """    return"//aside[@class='el-aside']//span[text()='"+menu_name+"']/ancestor::li[1]"我们来举一个场景的例子,我们之前有个用例,是进入到已买到的宝贝页面,然后依次点击页面上的按钮,比如”全部“、”待付款“、”待发货“、”运输中“等等,我们当时是通过一个list,然后循环来点击。我们也可以通过pytest.mark.parametrize来修改这个用例fromtimeimportsleepimportpytestfrompage.LeftMenuPageimportLeftMenuPagefrompage.LoginPageimportLoginPagefrompage.OrderPageimportOrderPagetab_list=["全部","待付款","待发货","运输中","待确认","待评价"]classTestOrderBuy:  @pytest.mark.parametrize("tab",tab_list)  deftest_order_buy(self,driver,tab):    LoginPage().login(driver,"william")    LeftMenuPage().click_level_one_menu(driver,"我的订单")    sleep(1)    LeftMenuPage().click_level_two_menu(driver,"已买到的宝贝")    sleep(2)    OrderPage().click_order_tab(driver,tab)    sleep(2)我们再来写一个用例,将我们的订单发布参数化fromtimeimportsleepimportpytestfrompage.LoginPageimportLoginPagefrompage.LeftMenuPageimportLeftMenuPagefrompage.GoodsPageimportGoodsPagegoods_info_list=[  {    "goods_title":"新增批量商品测试1",    "goods_details":"新增商品测试详情1",    "goods_num":1,    "goods_pic_list":["商品图片一.jpg"],    "goods_price":100,    "goods_status":"上架",    "bottom_button_name":"提交"  },  {    "goods_title":"新增批量商品测试2",    "goods_details":"新增商品测试详情2",    "goods_num":2,    "goods_pic_list":["商品图片一.jpg"],    "goods_price":200,    "goods_status":"上架",    "bottom_button_name":"提交"  }]classTestParametrizeAddGoods:  @pytest.mark.parametrize("goods_info",goods_info_list)  deftest_parametrize_add_goods(self,driver,goods_info):    LoginPage().login(driver,"jay")    LeftMenuPage().click_level_one_menu(driver,"产品")    sleep(1)    LeftMenuPage().click_level_two_menu(driver,"新增二手商品")    sleep(2)    GoodsPage().add_new_goods(      driver,      goods_title=goods_info["goods_title"],      goods_details=goods_info["goods_details"],      goods_num=goods_info["goods_num"],      goods_pic_list=goods_info["goods_pic_list"],      goods_price=goods_info["goods_price"],      goods_status=goods_info["goods_status"],      bottom_button_name=goods_info["bottom_button_name"]    )    sleep(3)底下我们想要测试用例执行的时候就更新测试进度,存储对应的测试结果我们在common下新建一个py文件叫process_redis,我们把可能的情况都写好fromcommon.toolsimportget_now_timefromcommon.redis_operationimportRedisOperationclassProcess:  def__init__(self):    self.redis_client=RedisOperation().redis_client    self.UI_AUTOTEST_PROCESS="ui_autotest_process"    self.FAILED_TESTCASE_NAMES="failed_testcase_names"    self.RUNNING_STATUS="running_status"  defreset_all(self):    #删除所有进度    self.redis_client.delete(self.UI_AUTOTEST_PROCESS)    #删除所有失败用例的名称    self.redis_client.delete(self.FAILED_TESTCASE_NAMES)  definit_process(self,total):    """    初始化进度,包括总数、成功数、失败数、开始时间,运行状态    :paramtotal:    :return:    """    self.redis_client.hset(self.UI_AUTOTEST_PROCESS,"total",total)    self.redis_client.hset(self.UI_AUTOTEST_PROCESS,"success",0)    self.redis_client.hset(self.UI_AUTOTEST_PROCESS,"fail",0)    self.redis_client.hset(self.UI_AUTOTEST_PROCESS,"start_time",get_now_time())    self.redis_client.hset(self.UI_AUTOTEST_PROCESS,"end_time","")    self.redis_client.set(self.RUNNING_STATUS,1)  defupdate_success(self):    """    成功用例个数+1    Returns:    """    self.redis_client.hincrby(self.UI_AUTOTEST_PROCESS,"success")  defupdate_fail(self):    """    失败用例个数+1    Returns:    """    self.redis_client.hincrby(self.UI_AUTOTEST_PROCESS,"fail")  definsert_into_fail_testcase_names(self,fail_testcase_name):    """    增加失败用例名称    Returns:    """    self.redis_client.lpush(self.FAILED_TESTCASE_NAMES,fail_testcase_name)  defget_process(self):    """    获取进度,计算百分比    Returns:    """    total,success,fail,_=self.get_result()    iftotal==0:      return0    else:      result="%.1f"%((int(success)+int(fail))/int(total)*100)+"%"      returnresult  defget_result(self):    """    获取测试结果    Returns:    """    total=self.redis_client.hget(self.UI_AUTOTEST_PROCESS,"total")    iftotalisNone:      total=0    success=self.redis_client.hget(self.UI_AUTOTEST_PROCESS,"success")    ifsuccessisNone:      success=0    fail=self.redis_client.hget(self.UI_AUTOTEST_PROCESS,"fail")    iffailisNone:      fail=0    start_time=self.redis_client.hget(self.UI_AUTOTEST_PROCESS,"start_time")    ifstart_timeisNone:      start_time='-'    returntotal,success,fail,start_time  defget_fail_testcase_names(self):    """    获取所有失败的用例名称    Returns:    """    fail_testcase_names=self.redis_client.lrange(self.FAILED_TESTCASE_NAMES,0,-1)    returnfail_testcase_names  defwrite_end_time(self):    """    把测试结束时间写入redis    Returns:    """    self.redis_client.hset(self.UI_AUTOTEST_PROCESS,"end_time",get_now_time())  defwrite_jenkins_build_number(self,build_number):    """    把jenkins执行的build_number写入redis    Args:      build_number:
  • 所需E币: 0
    时间: 2023-11-10 15:49
    大小: 1009KB
    上传者: Argent
    第18讲MfgTool烧写(NAND版本)-补录
  • 所需E币: 0
    时间: 2023-11-10 15:48
    大小: 1011KB
    上传者: Argent
    第17讲Linux内核移植(NAND版本)-补录
  • 所需E币: 0
    时间: 2023-11-10 15:48
    大小: 1016KB
    上传者: Argent
    第16讲Uboot移植实验(NAND版本)-补录
  • 所需E币: 0
    时间: 2023-11-10 16:11
    大小: 1011KB
    上传者: Argent
    第8讲C语言版本LED驱动实验
  • 所需E币: 0
    时间: 2023-11-10 16:44
    大小: 575.14KB
    上传者: Argent
    SiliconLabs(芯科科技)如何移植si446xB版本驱动程序到C版本
  • 所需E币: 1
    时间: 2023-7-29 17:00
    大小: 219.13KB
    上传者: Argent
    AN12146(RT1050A1和A0版本芯片改进项对比)
  • 所需E币: 1
    时间: 2023-7-26 16:52
    大小: 724.63KB
    上传者: 张红川
    普中ARM3.0开发板提供的原始版本.rar
  • 所需E币: 1
    时间: 2023-6-28 11:16
    大小: 899.87KB
    上传者: 张红川
    MPU6050寄存器英文版本.pdf
  • 所需E币: 1
    时间: 2023-6-22 17:57
    大小: 140.07KB
    上传者: 电子阔少
    KiCadWindows版本编译说明,默认msys2界面是英文,根据自己需要是否设置中文显示,默认字体看着有点虚,字体推荐是开源的Hack字体。
  • 所需E币: 0
    时间: 2023-4-17 12:21
    大小: 1.3KB
    Java双版本(SSM到SpringBoot)校园商铺全栈开发(升级版)课程分享下载!项目运用SSM快速迭代出校园商铺1.0,再结合SSM转型成SpringBoot的思路,切换到校园商铺2.0。同时包含MySQL主从同步实现读写分离,利用SUIMobile快速实现响应式页面,Redis缓存,阿里云部署等实用技术点。从SSM到SpringBoot从校园O2O到成型的企业应用,项目开发+网站运营毕业设计一步到位,提升职场竞争力从入门到实战手把手实现商铺全栈项目门槛低基本Java基础语法手把手带你开发/前端+后端全栈技术全SSM/SpringBootRedis/SUIMobile新升级框架升级/项目迭代优化重构搭建框架+各模块开发+上线推广提升综合能力通用模块通用DAO开发Redis访问层开发单元测试模块建立数据备份模块搭建MySQL主从库数据定期备份冗灾(包括数据以及图片的备份涉及Crontab)前端模版搭建即便你不精通前端开发以及设计(只会一些HTML,jQuery概念)也可以借助第三方组件SUI快速搭建属于自己的前后台界面前台模块会员注册会员登录首页模板数据填充开发店铺详情页开发商品详情页开发会员个人信息展示搜索功能开发商家模块商户入驻申请商户登录/退出登录门店管理添加商品折扣信息商品活动列表其他操作顾客活跃度数据展示积分管理超级管理员模块头条管理店铺管理商品管理顾客信息管理主后台商家入驻列表开发主后台新开店铺审批列表开发主后台新开店铺审批
  • 所需E币: 0
    时间: 2023-3-27 15:56
    大小: 1.38KB
    上传者: 开心就很好了
    分享一套CKS视频教程:《Kubernetes/K8SCKS安全专家认证实践》,2023年完结新课,课程基于k8s1.26最新版本!提供配套的文档下载!课程大纲:第1章KubernetesCKS课程介绍及说明第2章Kubernetes1.26集群部署第3章集群检测kube-bench第4章容器镜像检测Trivy第5章容器权限最小化SecurityContext第6章系统强化Seccomp、AppArmor第7章容器沙箱gVisor第8章容器运行时监控Sysdig、Falco第9章集群审计日志Audit第10章容器网络策略NetworkPolicy第11章镜像策略ImagePolicyWebhook第12章CKS原题模拟分析与解析第13章附赠基础安全-Secrets【选修】第14章附赠基础安全-ServiceAccount【选修】第15章附赠基础安全-RBAC【选修】学完本套课程,您将会获得:——>帮助学员掌握CKS考试所必备的安全相关技能,同时提供考题原题分析,帮助学员轻松拿下CKS认证考试——>掌握如何使用Kube-bench等工具检测和排查集群安全漏洞,提升集群安全性和稳定性掌握如何使用Trivy等工具检测和修复容器镜像中的安全漏洞——>提高容器镜像的安全性掌握容器最小化权限的相关概念、实现方式,帮助学员提高容器安全性——>有效防止容器攻击掌握Seccomp和AppArmor限制容器的系统调用和资源访问权限——>为企业提供更加可靠的安全保障掌握gVisor容器沙箱,实现容器的更加安全的资源隔离和保护——>有效避免容器攻击和跨容器漏洞攻击掌握容器运行时的监控sysdig、Falco,及时发现和应对潜在的安全威胁掌握如何使用audit对容器日志进行全面审计和分析掌握NetworkPolicy网络策略实现容器之间的流量访问控制——>有效防止恶意流量的传播和攻击掌握ImagePolicyWebhook实现对容器镜像的安全检测——>防止恶意或未经授权的容器镜像运行剖析考试题型和考察知识点,帮助学员更好地掌握CKS考试,提高通过考试的几率
  • 所需E币: 1
    时间: 2023-3-14 17:20
    大小: 55.76MB
    上传者: Argent
    STM32H7开发指南-HAL库版本_V1.0
  • 所需E币: 5
    时间: 2023-2-21 10:10
    大小: 4.52MB
    上传者: 蒲泽新
    介绍了P25传统的控制信息
  • 所需E币: 5
    时间: 2023-2-21 10:09
    大小: 1.06MB
    上传者: 蒲泽新
    介绍了P25链接控制字格式和消息
  • 所需E币: 5
    时间: 2023-2-21 10:11
    大小: 716.24KB
    上传者: 蒲泽新
    介绍了P25动态重组消息和过程
  • 所需E币: 5
    时间: 2023-2-12 22:11
    大小: 249.52KB
    上传者: ZHUANG
    多DSP系统的版本快速加载方法.
  • 所需E币: 3
    时间: 2022-12-1 18:42
    大小: 27.28MB
    上传者: xiazaixiazai
    找了很久才找的epub格式 希望大家能在手机学习阅读 希望支持下 大话设计模式程杰手机阅读epub版本
  • 所需E币: 1
    时间: 2022-9-29 20:09
    大小: 7.77MB
    上传者: 西风瘦马
    MCS-51单片机文本版本.pdf