最强实战,Web自动化测试Python+Selenium3+PO+Yaml+DDT框架封装(详细)

本文介绍了一个基于Python3、Selenium3、Page Object、YAML和DDT的自动化测试框架,通过分层设计提高测试用例的可维护性。页面元素和用例数据分别在yaml文件中管理,简化了代码修改。文章还详细说明了框架的目录结构、用例编写方法,并涵盖了从Python编程到接口、Web和App自动化测试的内容。


前言

设计思路

框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。

1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性;

2、使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不需要去修改测试代码,只需要在对应的页面元素yaml文件中修改即可;

3、分模块管理,互不影响,随时组装,即拿即用。

测试框架分层设计

31

把常见的操作和查找封装成基础类,不管是什么产品,可直接拿来复用;
业务层主要是封装对象页面类,一个页面建一个类,业务层页面继承基础层;
用例层针对产品页面功能进行构造摸拟执行测试;

框架层提供基础组件,支撑整个流程执行及功能扩展,给用例层提供各页面的元素数据、用例测试数据,测试报告输出等;

测试框架目录结构

32

33

编写用例方法
login.yaml

testinfo:
  - id: test_login001
    title: 登录测试
    info: 打开抽屉首页

testcase:
  - element_info: login-link-a
    find_type: ID
    operate_type: click
    info: 打开登录对话框

  - element_info: mobile
    find_type: ID
    operate_type: send_keys
    info: 输入手机号

  - element_info: mbpwd
    find_type: ID
    operate_type: send_keys
    info: 输入密码

  - element_info: //input[@class='keeplogin']
    find_type: XPATH
    operate_type: click
    info: 单击取消自动登录单选框

  - element_info: //span[text()='登录']
    find_type: XPATH
    operate_type: click
    info: 单击登录按钮

  - element_info: userProNick
    find_type: ID
    operate_type: perform
    info: 鼠标悬停账户菜单

  - element_info: //a[@class='logout']
    find_type: XPATH
    operate_type: click
    info: 选择退出

check:
  - element_info: //div[@class='box-mobilelogin']/div[1]/span
    find_type: XPATH
    info: 检查输入手机号或密码,登录异常提示

  - element_info: userProNick
    find_type: ID
    info: 成功登录

  - element_info: reg-link-a
    find_type: ID
    info: 检查退出登录是否成功

例如,我们要新增登录功能测试用例:

首先,只需在testyaml目录下新增一个页面对象yaml文件,参考login.yaml格式编写即可。这些文件是提供给封装页面对象类调用并执行定位识别操作。
login_data.yaml

-
  id: test_login001.1
  detail: 手机号和密码为空登录
  screenshot: phone_pawd_empty
  data:
    phone: ""
    password: ""
  check:
    - 手机号不能为空

-
  id: test_login001.2
  detail: 手机号为空登录
  screenshot: phone_empty
  data:
    phone: ""
    password: aa
  check:
    - 手机号不能为空

-
  id: test_login001.3
  detail: 密码为空登录
  screenshot: pawd_empty
  data:
    phone: 13511112222
    password: ""
  check:
    - 密码不能为空

-
  id: test_login001.4
  detail: 非法手机号登录
  screenshot: phone_error
  data:
    phone: abc
    password: aa
  check:
    - 手机号格式不对

-
  id: test_login001.5
  detail: 手机号或密码不匹配
  screenshot: pawd_error
  data
内容概要:本文围绕考虑隐私保护的分布式联邦学习在电力负荷预测中的应用展开研究,并提供了完整的Python代码实现。该方法采用联邦学习的分布式架构,允许多个数据持有方在不共享原始敏感数据的前提下协同训练高精度的负荷预测模型,有效解决了数据孤岛与用户隐私泄露之间的矛盾。研究详细阐述了联邦学习的核心机制,包括本地模型训练、加密参数上传、全局模型聚合等关键流程,并基于真实电力负荷数据进行了实验验证,结果表明该方法在保障数据隐私安全的同时,仍能保持优异的预测性能与模型泛化能力。; 适合人群:具备一定机器学习基础和电力系统背景的研究人员,以及从事负荷预测、数据隐私保护、联邦学习算法开发的研究生和技术人员。; 使用场景及目标:①应用于居民区、工业园区等多主体参与的电力负荷预测场景,解决跨机构数据协作中的隐私合规问题;②为构建安全可信的智能电网数据共享与分析平台提供关键技术支撑;③推动联邦学习在能源互联网、需求响应、虚拟电厂等领域的工程化落地。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,深入理解联邦学习的通信协议、梯度聚合机制与隐私保护策略,可在复现实验的基础上尝试引入差分隐私、同态加密等增强手段,或优化模型结构以提升预测效率与精度。
内容概要:本文提出了一种基于压缩感知中密钥控制测量矩阵的新型图像压缩加密混合算法,深度融合压缩感知理论与现代密码学机制,实现图像在高效压缩的同时完成高强度的安全加密。该算法通过引入密钥动态生成或调控测量矩阵,确保仅有持有正确密钥的授权方能够准确重构原始图像,从而显著提升系统的抗攻击能力和保密性。文中系统阐述了算法的设计原理、密钥控制机制、测量矩阵构造方法以及信号重构流程,并基于Matlab平台进行了完整的代码实现与仿真实验,验证了该算法在压缩效率、重构图像质量(如PSNR、SSIM指标)以及抵抗常见攻击(如噪声、剪切、统计分析)等方面的优异性能。; 适合人群:具备信号处理、信息安全或数字图像处理基础知识,正在从事相关领域研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①适用于军事通信、医疗影像安全传输、云端敏感图像存储等需兼顾压缩效率与数据安全的场景;②为探索压缩感知与信息安全交叉领域的研究人员提供可复现的算法设计范例与仿真代码参考;③推动图像数据在传输与存储过程中实现高效性与安全性的有机统一。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点分析密钥控制测量矩阵的生成逻辑及其对重构性能的影响,同时可在不同类型的图像数据集上进行测试,以全面评估算法的鲁棒性与泛化能力。
内容概要:本文研究了一种面向间歇性拒绝服务(DoS)攻击的混合动态事件触发微电网多目标二次均衡控制策略,旨在保障孤岛微电网在遭受网络安全威胁时仍能实现电压频率的稳定恢复与有功无功功率的精确均分。通过构建非奇异终端滑模面,结合基于强化学习的RBF神经网络与扰动观测器,有效提升了系统对未知扰动和攻击导致通信中断的鲁棒性;同时引入混合动态事件触发机制,显著降低了控制器间的通信频率,节约了通信资源。该方法在Simulink平台上建立了完整的微电网仿真模型,验证了所提控制框架在复杂攻击场景下的有效性与优越性,实现了安全性、稳定性与资源效率的协同优化。; 适合人群:具备电力系统自动化、现代控制理论基础及MATLAB/Simulink仿真能力的研究生、科研人员,以及从事微电网控制系统设计与安全防护的工程技术人员。; 使用场景及目标:① 提升高危网络环境下微电网的抗攻击能力与运行可靠性;② 实现二次控制中多目标(电压、频率、功率分配)的协同优化调控;③ 在保证动态响应性能的前提下减少通信开销,适用于资源受限的分布式能源系统实际部署场景。; 阅读建议:建议读者结合提供的Simulink仿真模型深入理解控制器的设计流程与稳定性分析方法,重点关注滑模面构造、RBF神经网络补偿机制及事件触发阈值设定等关键技术环节,并可根据具体应用场景调整参数以实现定制化优化。
内容概要:本文针对高渗透率新能源接入背景下电力系统稳定运行的挑战,研究了可切换构网型(GFM)与跟网型(GFL)逆变器之间的双向平滑切换控制策略。传统GFL逆变器依赖电网锁相运行,在弱电网或孤岛工况下易失稳;而GFM逆变器虽具备自主建压能力,但在并网时缺乏同步调节机制,难以实现无缝切换。为此,文章提出一种基于共用硬件平台和统一内环控制架构的双向切换策略,重点设计了切换判据、切换时序及过渡过程中的平滑抑制方法,有效避免切换过程中出现功率冲击、电压畸变和频率波动等问题。研究建立了GFL与VSG型GFM逆变器的完整控制模型,并通过Simulink仿真实验验证了该策略在不同工况下的有效性,结果表明系统在模式切换过程中能够保持良好的动态响应和平滑过渡性能。; 适合人群:从事电力电子、新能源并网控制、微电网与智能配电网研究的科研人员及工程技术人员,具备一定电力系统与控制理论基础的研究生及以上学历人员。; 使用场景及目标:①应用于分布式光伏、储能系统等新能源并网设备,提升其在复杂电网环境下的适应性与稳定性;②实现逆变器在并网与孤岛模式间的无缝切换,增强微电网的自治运行能力;③为构网型与跟网型控制技术的融合应用提供理论支持与工程参考。; 阅读建议:建议结合文中提供的Simulink仿真模型进行实践操作,重点关注切换判据设置与过渡控制策略的实现细节,同时可进一步拓展至多机并联系统中的协同切换研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值