测试开发体系介绍——测试体系介绍-L2

目录:

  1. 被测系统架构与数据流分析
    1. 开源项目 LiteMall 系统架构:
    2. 开源项目 Mall 的系统架构:
    3. 如何快速了解一家公司的架构
    4. 统一建模语言 UML
    5. 推荐工具
    6. 梳理业务流程:
    7. 使用思维导图分析功能点:
    8. 使用时序图分析数据流:
    9. 使用活动图分析测试用例:
    10. 测试用例设计总结
  2. 测试体系与测试方案设计
    1. 了解被测系统架构
    2. 智能家居技术架构:
    3. 阿里云经典业务架构:
    4. 阿里云物联网平台技术架构:
    5. 企业服务钉钉技术架构:
    6. 企业服务飞书技术架构:
    7. 电子商城 Mall 开源项目技术架构:
    8. 经典技术架构:
    9. 腾讯与阿里的质量保证服务参考:
    10. 测试开发技术体系:
    11. 测试能力架构图:
  3. 被测需求理解
    1. 需求文档
    2. 需求评审
    3. 需求分析
  4. 常用测试策略与测试手段
    1. 测试策略概念
    2. 测试策略的关注重点
    3. 测试手段
    4. 测试策略模版:
  5. bug定位方法
    1. 常见 Bug 分类:
    2. 为什么需要掌握 Bug 定位
    3. Bug 展现层:
    4. 技术架构层次
    5. MVC 三层分析方法
    6. View 层常用分析方法
    7. Controller 层常用分析方法
    8. Model 层常用分析方法
    9. Web Bug分析方法
      1. Web UI View 层 Bug 分析方法
      2. Web Controller 层分析方法
      3. Web Model 层分析方法-分析数据传递方式与结构
    10. App Bug 分析方法
      1. App View 层 Bug 分析:
      2. App Controller 层分析
      3. App Model 层分析方法
      4. Andorid Profiler 网络分析
      5. 使用代理工具分析
      6. 网络协议层分析
    11. 性能Bug分析方法:
      1. H5 性能分析方法:
      2. 利用 Chrome 分析 Web 性能
      3. 分析性能瓶颈 使用 Profile 进行代码剖析
    12. 代码覆盖率分析方法
    13. 总结
  6. 分层测试策略
    1. 分层测试策略的初衷 质量保证
    2. 分层测试策略的初衷 效率提升
    3. 测试金字塔
    4. UI 组件的分层测试
    5. 金字塔模型与沙漏模型:
    6. 微服务测试模型
    7. 微服务测试策略
  7. 自动化测试策略
    1. 用户端测试体系:
    2. 工具体系参考:
    3. 智能遍历工具:
    4. 稳定性测试体系案例:
    5. 服务端测试体系
    6. 后端链路调用架构图
    7. 使用 Mock 技术解耦与提高测试覆盖
    8. 接口测试框架:
    9. 测试用例自动生成技术例子 Swagger
    10. JVM-Sandbox-Repeater 录制回放工具:
    11. 接口重构与 diff 测试
    12. 流量回放
    13. 更多质量保证
    14. 自动化测试策略总结
  8. 测试环境搭建
    1. 被测系统 AUT(Application Under Test)
    2. 常见的被测系统类型
    3. 部署方法
    4. 打包部署
    5. 打包命令
    6. 自动化脚本部署
    7. 容器部署

1.被测系统架构与数据流分析

开源项目 LiteMall 系统架构: 
  • 角色与数据
  • 用户产品
  • 前端技术栈
  • 后端技术栈
  • 数据存储

开源项目 Mall 的系统架构:
  • 角色与数据
  • 用户产品
  • 前端技术栈
  • 后端技术栈
  • 服务治理技术栈
  • 监控技术栈
  • 大数据处理技术栈
  • 数据存储
  • 持续集成/持续交付/DevOps

 

 如何快速了解一家公司的架构
  • 业务架构
    • 领域模型:角色、行为、数据
    • 业务流程:角色之间的集成关系
  • 系统架构:
    • 架构角色与技术栈:
      • 网关:apache/nginx/f5/
      • 应用开发:spring boot/spring cloud/
      • 通讯协议:dubbo/http/pb
      • 数据处理:hadoop/spark/flink
      • 数据存储:redis/mysql/oracle/redis/es
      • 文档存储:mongodb/hbase/neo4j
    • 部署架构:架构角色之间的集成关系
统一建模语言 UML
  • 用例图:商业模式、业务角色
  • 时序图:业务流程、调用关系
  • 部署图:系统架构与集成关系
  • 活动图:业务逻辑分析
推荐工具
  • plantuml
  • yed
  • draw.io
  • processon
  • visio
梳理业务流程:
@startuml
skin rose
scale 800 height
left to right direction
actor User as user
actor Admin as admin
package 商品 {usecase "发布商品"usecase "浏览商品"usecase "购买商品"usecase "下架商品"
}package 订单 {usecase "结算订单"usecase "查询订单"usecase "退款"usecase "管理订单"
}
admin -up-> 发布商品
admin -up-> 下架商品
admin -up-> 管理订单
user --> 浏览商品
user --> 购买商品
user --> 结算订单user --> 结算订单
user --> 查询订单
user --> 退款
@enduml

使用思维导图分析功能点:
@startmindmap
skin rose
caption figure 1
title My super title* <&flag>Debian
** <&globe>Ubuntu
*** Linux Mint
*** Kubuntu
*** Lubuntu
*** KDE Neon
** <&graph>LMDE
** <&pulse>SolydXK
** <&people>SteamOS
** <&star>Raspbian with a very long name
*** <s>Raspmbc</s> => OSMC
*** <s>Raspyfi</s> => Volumioheader
My super header
endheadercenter footer My super footerlegend rightShortlegend
endlegend
@endmindmap

使用时序图分析数据流:
scale 800 height
skin rose
用户 -> 认证中心: 登录操作
认证中心 -> 缓存: 存放(key=token+ip,value=token)token用户 <- 认证中心 : 认证成功返回token
用户 -> 认证中心: 下次访问头部携带token认证
认证中心 <- 缓存: key=token+ip获取token
其他服务 <- 认证中心: 存在且校验成功则跳转到用户请求的其他服务
其他服务 -> 用户: 信息

使用活动图分析测试用例:
@startuml
skin rose
scale 1000 height
start
repeat:Test something;if (Something went wrong?) then (no)#palegreen:OK;breakendif->NOK;:Alert "Error with long text";
repeat while (Something went wrong with long text?) is (yes) not (no)
->//merged step//;
:Alert "Success";
stop
@enduml

 

测试用例设计总结
  • 使用用例图分析角色与资源
  • 使用思维导图分析功能点
  • 使用时序图分析数据流
  • 使用活动图分析业务逻辑

2.测试体系与测试方案设计

了解被测系统架构
  • 业务架构:业务模型分析
  • 技术架构:技术组件、通讯协议分析
  • 数据架构:数据模型、数据存储引擎分析
智能家居技术架构:

阿里云经典业务架构: 

阿里云物联网平台技术架构:

企业服务钉钉技术架构:

企业服务飞书技术架构:

电子商城 Mall 开源项目技术架构: 

经典技术架构: 
  • 网关产品 Nginx Apache Httpd
  • Web 应用开发 Vue React
  • 移动应用开发 Android iOS RN Flutter
  • 后端应用开发 Java(Spring Boot)
  • 底层引擎:C/C++ Go Rust
  • 消息管道 Kafka RabbitMQ
  • 缓存系统 Redis MemCached
  • 数据监控 Logstash ElasticSearch Kibana
  • 性能监控 Prometheus Grafana
  • 大数据处理 Hadoop Spark Flink
  • 人工智能深度学习 TensorFlow Pytorch
腾讯与阿里的质量保证服务参考:

阿里云效测试能力与架构:

腾讯 WeTest 测试能力全景图:

测试开发技术体系:
  • 用户端测试
    • Web/App 测试
    • Web/App 自动化测试
    • 用户端专项测试
    • 用户端安全测试
  • 服务端测试
    • 接口协议与 Mock
    • 接口自动化测试
    • 服务端性能测试
    • 服务端安全测试
  • 持续交付
    • 容器技术 Docker
    • 自动化系统 Jenkins
    • 持续集成
    • 持续交付
  • 测试开发
    • 持续部署 DevOps
    • 测试框架 测试平台
    • 测试左移 精准测试
    • 测试右移 质量监控
测试能力架构图:

 

3.被测需求理解

需求文档
  • 查看需求需求文档范例
  • 模拟需求宣讲
  • 产品需求文档范例:https://docs.qq.com/doc/DV2ZMWUxFWE9XaEVk
需求评审

需求分析
  • 明确测试范围
  • 明确功能点
  • 明确业务流程
  • 明确输出结果
  • 分析异常流程
  • 预估测试需要的时间和资源

4.常用测试策略与测试手段

测试策略概念

在特定环境约束之下,描述软件开发周期中关于测试原则、方法、方式的纲要,并阐述了它们之间如何配合,以高效地减少缺陷、提升质量。

测试策略的关注重点
  • 测试的目标是什么?
  • 测试可能存在的风险是什么?
  • 测试的对象和范围是什么?
  • 如何安排各种测试活动?
  • 如何评价测试的效果?
测试手段
  • 黑盒测试
  • 白盒测试
  • 动态测试
  • 静态测试
  • 手工测试
  • 自动化测试
测试策略模版:

https://docs.qq.com/doc/DV0Z6VEZHSUlwTXhC

5.bug定位方法

常见 Bug 分类:
维度介绍
功能业务流程是否正确
性能业务流程是否顺畅
安全是否符合安全标准与规范
专项质量用户体验 UX 兼容性 稳定性 可靠性
为什么需要掌握 Bug 定位
  • 提交 Bug 时候追加更多有用信息,方便研发更快的解决问题
  • 分析 Bug 形成原因,进行溯源并建立特征进行批量追踪
Bug 展现层:
  • 条件:测试数据
  • 过程:测试步骤
  • 结果:测试结果

 

技术架构层次
  • 视图层 View:
    • Web UI html css
    • App activity view
  • 控制器层 Controller:
    • Web:chrome、devtool
    • App:dalvik art objectc-runtime
  • 模型层 Model:
    • 模型的传递方式 http tcp rpc 串口
    • 模型的形式 json xml binary
    • 模型定义 schema

 

MVC 三层分析方法
  • View 层:运行平台、应用调试机制、链路分析
  • Controller 层:运行平台、应用调试机制、链路分析
  • Model 层:运行平台、应用调试机制、链路分析
 View 层常用分析方法
  • UI 人工测试 自动化测试
  • UE 人工测试 自动化测试
  • UI Diff 自动化分析
Controller 层常用分析方法
  • 运行平台日志:log
  • 应用调试日志:debug trace hook profile
 Model 层常用分析方法
  • 运行平台 log
  • app 调试机制
  • 链路分析:代理抓包 嗅探抓包
Web Bug分析方法 
Web UI View 层 Bug 分析方法
  • 主要依赖于 html css js
  • 可以使用 chrome 开发者工具 elements 与 style

 

Web Controller 层分析方法 
  • console 可以了解 js 的输出与报错信息
  • source 模块可以对 js 进行 debug

 

Web Model 层分析方法-分析数据传递方式与结构
  • 运行平台 log
    • chrome network
  • 链路分析
    • 代理 proxy: fiddler charles mitmproxy
    • 网络层协议 network: tcpdump wireshark
App Bug 分析方法 
App View 层 Bug 分析:
  • UI 界面交互
  • UX/UE 用户体验
  • UI Diff:uiautomator dump

 

App Controller 层分析 

通过 logcat 分析 app runtime 日志:

 

App Model 层分析方法
  • 运行平台 log
  • 应用:应用日志
  • 链路分析:
    • 代理抓包:charles fiddler mitmproxy
    • 嗅探抓包:wireshark tcpdump
 Andorid Profiler 网络分析

使用代理工具分析 

网络协议层分析 

 

性能Bug分析方法:
H5 性能分析方法:

利用 Chrome 分析 Web 性能
分析性能瓶颈 使用 Profile 进行代码剖析

代码覆盖率分析方法

 

总结
  • 明确 Bug 问题的现象与复现步骤
  • 分层分析关键过程的数据与问题特征
  • 积累 Bug 特征与问题根源特征,丰富测试经验,提高 Bug 发现的能力

6.分层测试策略

分层测试策略的初衷 质量保证
  • 需求分析
  • 测试标准确立
  • 测试用例 review
  • 界面覆盖率
  • 接口覆盖率
  • 代码覆盖率
分层测试策略的初衷 效率提升
  • 人工测试:招人 加人 培训,无论横向扩容还是纵向扩容,成本都很大
  • 自动化测试:自动化测试 自动遍历测试 录制回放测试
  • 尽早测试尽快反馈:单元测试 集成测试
  • 流水线:持续集成 持续交付 DevOps
测试金字塔 

UI 组件的分层测试

金字塔模型与沙漏模型:

微服务测试模型
  • Resources 通过特定协议暴露能力
  • Service 负责领域模型的协作
  • Domain 包含行为和数据的领域对象模型
  • Repositories 作用于域实体的集合,并且通常是持久性支持的
  • Gateway 与远程服务进行通讯
  • Data Mappers 模型的序列化方案

 

 微服务测试策略
  • 单元测试 检验应用程序中最小的可测试软件,以确定它们的行为是否符合预期
  • 集成测试 验证组件之间的通信路径和交互以检测接口缺陷
  • 组件测试 将运行软件的范围限制在被测系统的一部分,通过内部代码接口操纵系统,并使用测试替身将被测代码与其他组件隔离开来
  • 端到端测试 : 验证系统是否满足外部要求并实现其目标,从头到尾测试整个系统

 

7.自动化测试策略

用户端测试体系:
  • 研发单元测试:JUnit、Robolectric 不依赖真机或者模拟器
  • 集成测试:Espresso 单应用快速集成测试
  • 验收测试:Appium、ATX/AirTest、Calabash 跨应用测试

 

工具体系参考:

 

智能遍历工具:
  • 百度 SmartMonkey
  • 腾讯 NewMonkey
  • 头条 fastbot
  • 支付宝 Macaca 的 NoSmoke
  • Android Monkey、Android App Crawler
  • OWASP-ZAP Web 漏洞自动探测

 

稳定性测试体系案例:
  • Fastbot 已广泛应用于字节客户端类产品的稳定性测试与兼容性测试。每日启动任务数超过 1 万次,每月平均发现 5 万个以上的崩溃。借助 Fastbot 的能力,我们在发版前就可以修复大部分的 crash,确保线上用户的使用体验。同时,Fastbot 在整个 DevOps 流程扮演重要的基础服务角色 {style=“width: 100%”}

字节跳动: 

 

服务端测试体系
  • 手工测试
  • 自动化测试
  • DIFF 测试、流量回放
  • Mock
后端链路调用架构图

淘宝

使用 Mock 技术解耦与提高测试覆盖

接口测试框架:
  • Python:Requests
  • Java:RestAssured
  • 简约的接口测试 DSL
  • 支持结构化解析 XML JSON 等

 

 

测试用例自动生成技术例子 Swagger 

JVM-Sandbox-Repeater 录制回放工具:

接口重构与 diff 测试 

Twitter diffy diff 测试算法

流量回放 

GoRplay 技术架构

更多质量保证
  • 性能
  • 安全
  • 兼容性
  • 健壮性
  • 易用性
 自动化测试策略总结
  • 分层测试策略
    • 系统测试
    • 集成测试
    • 单元测试
  • 测试手段
    • 手工测试
    • 自动化测试
    • 测试框架

8.测试环境搭建

被测系统 AUT(Application Under Test)

常见的被测系统类型
  • UI:Web App IOT
  • Service:
    • RESTful:sprint boot
    • webservice
    • rpc:dubbo pb
  • code: SDK lib
部署方法
  • 打包部署:apk app ipa jar war
  • 脚本部署:自动化脚本与自动化平台
  • 容器部署:基于容器镜像 Docker K8S
 打包部署
  • Android:Gradle
  • iOS:XCode XCodeBuild
  • 自动化构建工具
  • Web:NodeJS npm
  • Service:Maven Gradle
打包命令 
# web
npm run build# app
gradlew tasks
gradlew assembleDebug
gradlew assembleRelease# spring boot
mvn clean package

 

自动化脚本部署
  • 通过 bash python 等脚本实现自动化的构建与部署
  • 通过持续集成平台比如 jenkins 完成流程管理

 

 

容器部署
  • 自动化构建 bash
  • 容器构建 docker
  • 容器编排 k8s
  • 持续集成 jenkins

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快手×东方卫视《超省钱大会》荣获“TV地标”2023年度优秀融媒体节目

12月19日&#xff0c;“TV地标”&#xff08;2023&#xff09;电视媒体和网络视听暨“时代之声”&#xff08;2023&#xff09;广播业综合实力大型调研成果发布会在京举办&#xff0c;国家广播电视总局主管的《中国广播影视》杂志公布了此次调研榜单。快手凭借与东方卫视、京东…

2024年你的年度目标OKR制定好了吗?

标题2023年余额见底&#xff0c;2024年的FLAG都制定好了吗&#xff1f; 目标很明确&#xff0c;计划很丰满&#xff0c;执行起来又处处透着一点点乏力&#xff0c;怎么办&#xff1f; 2024年可以尝试用OKR制定目标。 OKR目标管理方法&#xff0c;既适用于企业&#xff0c;也…

flutter + firebase 云消息通知教程 (android-安卓、ios-苹果)

如果能看到这篇文章的 一定已经对手机端的 消息推送通知 有了一定了解。 国内安卓厂商这里不提都有自己的FCM 可自行查找。&#xff08;国内因无法科学原因 &#xff0c;不能使用谷歌服务&#xff09;只说海外的。 目前 adnroid 和 ios 推送消息分别叫 FCM 和 APNs。这里通过…

UG阵列面、阵列集合特征和阵列特征的区别

阵列面 对面进行阵列&#xff0c;当实体中被切除特征的时候可以使用阵列面&#xff0c;当这个命令去阵列一个实体的时候&#xff0c;阵列的是一个片体&#xff0c;优点是速度快&#xff0c;缺点是功能较简单&#xff1b; 阵列几何特征 对实体进行阵列&#xff0c;可以一次性选…

【稳定检索|投稿优惠】2024年绿色能源与电网电力系统国际会议(ICGEGPS 2024)

2024年绿色能源与电网电力系统国际会议(ICGEGPS 2024) 2024 International Conference on Green Energy and Grid Power Systems(ICGEGPS) 一、【会议简介】 2024年绿色能源与电网电力系统国际会议(ICGEGPS 2024)将在宜宾盛大召开。本次会议将聚焦绿色能源与电网电力系统的最新…

教你在Linux上安装Node并用Electron打包deb和rpm包

Windows下无法打linux版本的包&#xff0c;如果你要打linux系统的amd64架构需要找一台linux amd64的系统打包&#xff0c;也可以在amd64下打arm架构的包&#xff0c;但是不能运行&#xff0c;需要放到arm架构的系统里才能运行。 下载linux的node环境 Index of /nodejs-releas…

WinRAR如何设置和清除密码?

WinRAR是一款功能强大的压缩管理器&#xff0c;除了能把文件打包变小&#xff0c;还能给压缩包设置密码保护&#xff0c;让文件不能随意打开&#xff0c;不需要时还可以把密码取消。下面来说说具体怎么操作吧。 WinRAR根据需要可以设置单次密码和永久密码&#xff0c;我们分别…

Spring Environment 注入引起NPE问题排查

文章目录 背景原因分析1&#xff09;Spring Aware Bean 是什么&#xff1f;2&#xff09;从 Spring Bean 的生命周期入手 解决方案 背景 写业务代码遇到使用 Spring Environment 注入为 null 的情况&#xff0c;示例代码有以下两种写法&#xff0c;Environment 实例都无法注入…

Megatron模型并行研究

Megatron模型并行研究 1. 技术调研 a. Megatron-LM Megatron-LM针对的是特别大的语言模型&#xff0c;使用的是模型并行的训练方式。但和普通的模型并行不同&#xff0c;他采用的其实是张量并行的形式&#xff0c;具体来说就是将一个层切开放到不同的GPU上&#xff0c;属于层…

Java中升级属性复制转换功能

前言 在java中,经常碰到bean之间的转换,诸如Entity转VO,Entity转DTO等等,这时,经常会碰到这样一种情况,VO和DTO里面有一个字段都是来源于Entity里面,但是属性名称和属性类型都不一样,虽然转换逻辑一致但是我们还是只能手动转换,这时如果我在代码中手动转换会出现很多多…

基于SSM的旅游网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

设计模式:循序渐进走入工厂模式

文章目录 前言一、引入二、简单工厂模式1.实现2.优缺点3.扩展 三、工厂方法模式1.实现2.优缺点 四、抽象工厂模式1.实现2.优缺点3.使用场景 五、模式扩展六、JDK源码解析总结 前言 软件设计模式之工厂模式。 一、引入 需求&#xff1a;设计一个咖啡店点餐系统。 设计一个咖啡类…

设计模式-门面模式

设计模式专栏 模式介绍模式特点应用场景门面模式和代理模式的区别代码示例Java实现门面模式Python实现门面模式 门面模式在spring中的应用 模式介绍 门面模式是一种常用的软件设计模式&#xff0c;也称为外观模式。它提供了一个高层次的接口&#xff0c;将一个子系统的外部与内…

卡通动漫AI绘画视频风格化AI智能PR插件StyleX免费下载

带有AI的视频风格化工具PR AI智能绘画插件。将视频转换为卡通、绘图、绘画、半色调和许多其他风格。 性能高度依赖GPU&#xff0c;一些旧的GPU卡&#xff08;2012年之前&#xff09;不受支持。 StyleX是一款先进的视频风格化工具&#xff0c;采用AI技术&#xff0c;它不仅可以将…

代码随想录第三十八天(一刷C语言)|零钱兑换II组合总数和 IV

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、零钱兑换II 思路&#xff1a;参考carl文档 1、确定dp数组以及下标的含义&#xff1a;凑成总金额j的货币组合数为dp[j]。 2、确定递推公式&#xff1a;dp[j] 就是所有的dp[j - coins[i…

仿悬赏猫任务平台源码 悬赏任务系统源码 带支付接口

源码介绍 最新仿悬赏猫任务平台源码 悬赏任务系统源码 带支付接口&#xff0c; 全新开发悬赏任务系统&#xff0c;功能齐全&#xff0c;包含接任务&#xff0c;发布任务&#xff0c; 店铺关注&#xff0c;置顶推荐&#xff0c;排行榜&#xff0c;红包大厅&#xff0c;红包抽奖…

深信服AF防火墙升级步骤(简单粗暴)

设备当前版本&#xff1a;AF8.0.75 升级升级后版本&#xff1a;AF8.0.85 官方发行&#xff1a;内容比较多&#xff0c;找设备当前版本在不在支持升级的列表即可 8.0.75是可以直接升到8.0.85的 升级前注意事项&#xff1a; 升级是需要重启设备的&#xff0c;会断网&#xff…

两种方法解决win10开机慢,经验分享

方法一&#xff1a; 1、按快捷键“winR”打开 运行窗口。 2、这时候输入“msconfig”后 &#xff0c;点击“确定”或者按“ENTER”键。 3、这时候会打开一个名为“系统配置”的窗口&#xff0c; 在“常规”选项框下 勾选“有选择的启动”下的“加载系统服务”和“加载启动项”。…

C语言的scanf输入函数的介绍分享

各位少年&#xff1a; 我来分享一个输入函数&#xff0c;scanf函数 是输入的函数&#xff0c;scanf&#xff08;“参数1”&#xff0c;参数2);好&#xff0c;我们接着看代码的例子 int main() { int score0; printf("请输入成绩:"); scanf("%d",&sco…

Android应用-flutter使用Positioned将控件定位到底部中间

文章目录 场景描述示例解释 场景描述 要将Positioned定位到屏幕底部中间的位置&#xff0c;你可以使用MediaQuery来获取屏幕的高度&#xff0c;然后设置Positioned的bottom属性和left或right属性&#xff0c;一般我们left和right都会设置一个值让控制置于合适的位置&#xff0…