




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LoadRunner性能测试基础 学习目标 学习目标性能测试是什么性能测试的范畴性能指标介绍性能测试的类型性能测试过程性能调优介绍LoadRunner基础 性能测试是什么 定义性能测试是指通过特定方式 对被测系统按照一定策略施加压力 获取系统响应时间 TPS 吞吐量 资源利用率等性能指标 以期保证生产系统的性能能够满足用户需求的过程 命名用户数命名用户数是指在应用系统中注册的所有系统用户 该用户数取决于系统应用范围和业务范围 可以通过统计应用系统数据库中用户登记表取得 在线用户数在线用户数是指同时登录应用系统的用户数量 该数据可通过检查系统应用与数据库连接取得 对于已投产系统 该数量一般通过系统跟踪监控获取 新投产系统通过经验值估算 性能测试是什么 并发用户数并发用户数是指系统运行期间同一时刻进行业务操作的用户数量 该数量取决于用户操作习惯 业务操作间隔和单笔交易的响应时间 使用频率较低的应用系统并发用户数一般为在线用户数的5 左右 使用频率较高的应用系统并发用户数一般为主线用户数的10 左右 交易交易分为业务层面和技术层面两种定义 业务层面交易是指完成一次完整的业务操作 如进行一次查询 转账 技术层面交易是指进行一次应用程序至应用程序 或者应用程序至数据库的系统操作 一般的一笔业务交易由多笔技术交易组成 根据业务交易的复杂度和系统应用架构的不同 其比例大致为1 2 1 10 性能测试的范畴 软件性能的范畴较广 通常包括执行效率 资源占用 稳定性 安全性 兼容性 可扩展性 可靠性等 用户视角的软件性能从用户角度来说 软件性能就是软件对用户操作的响应时间 2 5 10原则 产品开发人员视角的软件性能架构设计是否合理 数据库设计是否合理 代码是否存在性能方面的问题 系统中是否有不合理的内存使用方式 性能测试的范畴 系统管理员视角的软件性能系统运行时服务器的状态 如CPU利用情况 内存使用情况等 系统是否能够实现扩展 系统支持多少用户访问 系统的稳定性 是否支持7 24小时的业务访问 性能测试指标介绍 并发用户数响应时间交易成功率吞吐量TPS与HPS资源利用率 性能测试指标 并发用户数 最佳 最大 应用系统可支持的并发用户数通常反映系统的容量 即系统的处理能力情况 响应时间响应时间指的是从开发端发起一个请求开始 到客户端接收到从服务器端返回的响应结束 这个过程所耗费的时间 性能测试指标 交易成功率交易成功率指的是一段时间内成功的交易数在总交易数中所占的比例 金融行业应用系统一般要求在99 以上 吞吐量吞吐量是指单位时间内系统处理的客户请求的数量 直接体现应用系统的性能承载能力 性能测试指标 TPS与HPSTPS Transactionpersecond 指应用系统每秒钟处理完成的交易数量是估算应用系统性能的重要依据 一般而言 评价系统性能均以每秒完成的技术交易的数量来衡量 系统整体处理能力取决于处理能力最低模块的TPS值 HPS Hitpersecond每秒点击次数指一秒钟的时间内用户对web页面的链接 提交按钮等点击总和 HPS一般与TPS成正比关系 是B S系统中非常重要的性能指标之一 性能测试指标 资源利用率资源利用率是指系统在负载运行期间 数据库服务器 应用服务器 web服务器的CPU 内存 硬盘 外置存储 网络带宽的使用率 据经验 低于20 的利用率为资源空闲 20 60 的使用率为资源使用稳定 60 80 的使用率表示资源使用饱和 超过80 的资源使用率必须尽快进行资源调整与优化 其他指标在性能测试过程中还有大量与软件产品或硬件设备相关的测算指标 行业相关指标 性能测试类型 负载测试压力测试疲劳强度测试大数据量测试 性能测试类型 负载测试 LoadTest 通过逐步增加系统负载 测试系统性能的变化 并最终确定在满足性能指标的情况下 系统所能承受的最大负载量的测试 压力测试 StressTest 通过逐步增加系统负载 测试系统性能的变化 并最终确定在什么负载条件下系统性能处于失效状态 并以此来获得系统能够提供的最大服务级别的测试 压力测试是一种特定类型的负载测试 性能测试类型 疲劳强度测试通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数 持续执行一段时间业务 通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程 疲劳强度测试可以反映出系统的性能问题 例如内存泄漏等 大容量测试 VolumeTest 对特定存储 传输 统计 查询业务的测试 性能测试过程 规划阶段 测试目标 测试范围 测试组织 测试时间 准备阶段 测试环境 测试数据 测试脚本 测试程序 执行阶段 响应时间基准测试 负载测试 压力测试 容量测试 稳定性测试 调优阶段 收集 分析测试结果 定位瓶颈 性能调优 报告阶段 测试成果确认 测试目标完成确认 测试报告编制 性能测试过程 测试目标测试目标一般包含应用系统要达到的性能指标 系统处理的最大并发用户数 系统运行高峰时期 响应时间小于X秒 TPS不小于多少X 服务器资源利用率不超过80 运行7 24小时 无明显的内存泄漏现象 性能测试过程 测试监控项操作系统监控Cpu内存IO 通过Iostat查看iowait的运行情况文件系统空间监控中间件执行线程数数据库连接数查看队列状态 空闲执行线程数 队列长度 查看Weblogic启动的内存大小 Jvm大小以及输出 性能测试过程 测试监控项数据库建索引共享池 命中率避免全表扫描 性能调优介绍 调优基本原则如果某个部分不是瓶颈 就不要试图优化 优化是为系统提供足够的资源并且充分的利用资源 而不是无节制的扩充资源 优化有时候也意味着合理的分配或划分任务 优化可能会过头 注意协调整个系统的性能 性能调优介绍 Oracle Oracle中的两类等待事件空闲等待 Oracle正在等待某种动作的发生Clientmessage 客户机消息 SQL Netmessagefromclient 来自客户端的消息 Rdbmsipcmessage 数据库ipc消息 非空闲等待 数据库发生了竞争Bufferbusywaits 数据高速缓存忙等待 Dbfilescatteredread 数据文件离散读 Dbfilesequentialread 数据文件顺序读 Enqueue 队列 性能调优介绍 Oracle 监控Oracle性能的sql语句selectsid eventfromv session waitwhereeventnotlike rdbms andeventnotlike SQL Netmessage selectsql textfromv sqltext with newlinesawhere a hash value a address in selectDECODE sql hash value 0 prev hash value sql hash value DECODE sql hash value 0 prev sql addr sql address fromv sessionbWHEREb sid 4 orderbypieceasc 性能调优介绍 Oracle 通过ORACLE提供的底层SQL来查找性能最差的SQL SELECT FROM SELECTPARSING USER IDEXECUTIONS SORTS COMMAND TYPE DISK READS sql textFROMv sqlareaORDERBYdisk readsDESC WHEREROWNUM 10 查找前十条性能差的sql LoadRunner基础 LoadRunner常用的版本有哪些 V7 8V8 0V8 1V9 0V9 1V9 5LoadRunner是那个公司的产品 Mecury公司 现为HP收购世界500强的企业中 有75 的企业使用其产品TestDirector9 0版本称为QC MercuryQualityCenter WinRunnerLoadRunnerQuickTestProfessional QTP Loadrunner支持哪些常用的插件 net和JBuilder两种插件Loadrunner常用的开发语言是什么 C LoadRunner基础 Loadrunner支持哪些常用协议 Web HTTP HTML S协议webservices常用数据库协议 ODBC ORACLE SQLSERVER等邮件 SMTP pop3 其它协议 LoadRunner基础 Loadrunner常用组件Controller VirtualUserGenerator Vugen 创建脚本Controller 设计和运行场景Analysis 分析场景TuningConsole LoadRunner8 0以上 调优 LoadRunner基础 设置RecordingOptions选项 以单协议http html为例 菜单tools RecordingOptions进入录制的设置窗体Recording标签页 选用哪种录制方式Browser标签页 浏览器的选择RecordingProxy标签页 浏览器上的代理设置Advanced标签页 可以设置录制时的thinktime 支持的字符集标准等Correlation标签页 手工设置关联 通过关联可在测试执行过程中保存动态值 使用这些设置可以配置VuGen在录制过程中执行的自动关联的程度 LoadRunner基础 HTML Basedscr pt和URL Basedscr pt录制的区别 基于浏览器的应用程序推荐使用HTML Basedscr pt 不是基于浏览器的应用程序推荐使用URL Basedscr pt 如果基于浏览器的应用程序中包含了Javascr pt并且该脚本向服务器产生了请求 比如DataGrid的分页按钮等 也要使用URL Basedscr pt方式录制 基于浏览器的应用程序中使用了HTTPS安全协议 使用URL Basedscr pt方式录制 录制过程中不要使用浏览器的 后退 功能 LoadRunner对其支持不太好 LoadRunner基础 创建脚本操作步骤 启动VuGen 选择需要新建的协议脚本 可以创建单协议 或是多协议脚本点击StartRecord按钮 输入程序地址 开始进行录制使用VuGen进行录制 创建的每个Vuser脚本都至少包含三部分 vuser init 一个或多个Actions及vuser end 录制期间 可以选择脚本中VuGen要插入已录制函数的部分 运行多次迭代的Vuser脚本时 只有脚本的Actions部分重复 而vuser init和vuser end部分将不重复 LoadRunner基础 完善脚本插入事务插入集合点模拟用户思考时间参数化输入插入Text Imag检查点Run TimeSetting选项 LoadRunner基础 插入事务 Transaction 事务为衡量服务器的性能 需要定义事务 LoadRunner运行到该事务的开始点时 LR就会开始计时 直到运行到该事务的结束点 这个事务的运行时间在结果中会有反映 插入事务操作可以在录制过程中进行 也可以在录制结束后进行 LR运行在脚本中插入不限数量的事务 在菜单中单击Insert StartTransaction后 输入事务名称 也可在录制过程中进行 在需要定义事务的操作后面插入事务的 结束点 默认情况下 事务的名称列出最近的一个事务名称 一般情况下 事务名称不用修改 事务的状态默认情况下是LR AUTO 一般情况下 我们也不需要修改状态的 LoadRunner基础 插入集合点 Rendezvous 插入集合点是为了衡量在加重负载的情况下服务器的性能情况 在测试计划中 可能会要求系统能够承受1000人同时提交数据 在LR中可以通过在提交数据操作前面加入集合点 当虚拟用户运行到提交数据的集合点时 LR就会检查同时有多少用户运行到集合点 从而达到测试计划中的需求 具体的操作方法如下 在需要插入集合点的前面 点击菜单Insert Rendezvous 也可在录制时按插入集合点按钮注意 集合点经常和事务结合起来使用 集合点只能插入到Action部分 vuser init和vuser end中不能插入集合点 LoadRunner基础 模拟用户思考时间用户在执行两个连续操作期间等待的时间称为 思考时间 Vuser使用lr think time函数模拟用户思考时间 录制Vuser脚本时 VuGen将录制实际的思考时间并将相应的lr think time语句插入到Vuser脚本 可以编辑已录制的lr think time语句 也可在脚本中手动添加更多lr think time语句 以秒为单位指定所需的思考时间 LoadRunner基础 参数化如果用户在录制脚本过程中 填写提交了一些数据 这些操作都被记录到了脚本中 当多个虚拟用户运行脚本时 都会提交相同的记录 这样不符合实际的运行情况 而且有可能引起冲突 为了真实的模拟实际环境 需要各种各样的输入 录制业务流程时 VuGen生成一个包含可以用参数替换已录制的值 这被称为脚本参数化 参数化包含以下两项任务 在脚本中用参数取代常量值 设置参数的属性以及数据源 注意 不是所有的函数都可以参数化的 也可以将参数化的内容进行还原 LoadRunner基础 创建参数化选中需要参数化的内容 点击右键 选择Replacewithaparameter在 参数名 框中键入参数的名称 或从列表中选择一个现有的参数名 在从 参数类型 列表中选择参数类型 点击属性 设置参数属性也可以点击菜单 Vuser ParameterList 进行添加参数 设置相应的属性 LoadRunner基础 参数的类型介绍数据文件 文件 现有文件或者用VuGen或MSQuery创建的文件 中包含的数据分配内部数据 Vuser内部生成的数据 这包括日期 时间 组名 迭代编号 负载生成器名 随机编号 唯一编号和VuserID用户定义的函数 使用外部DLL函数生成的数据 LoadRunner基础 参数化设置属性界面 LoadRunner基础 参数属性设置定义选取列 表示指定选取哪一列的值定义 列分隔符 用来分隔表格中的列的字符选取下一个值的方式 表示在Vuser脚本执行期间如何选择表格数据 选项包括 顺序 随机 和 唯一 从 更新值的时间 列表中选择更新选项 选项包括 每次迭代 每次出现 和 一次 LoadRunner基础 从现有数据库中导入数据通过LoadRunner 可以从数据库中导入数据以用于参数化 您可以用下列两种方法中的一种导入数据 新建查询 指定SQL语句VuGen提供一个指导您完成从数据库中导入数据的过程的向导 在该向导中 您可以指定如何导入数据 通过MSQuery新建查询或者指定SQL语句 导入数据之后 它被另存为一个扩展名为 dat的文件 并且存储为常规参数文件 LoadRunner基础 插入Text Image检查点在进行压力测试时 为了检查Web服务器返回的网页是否正确 这些检查点验证网页上是否存在指定的Text或者Image 还可以测试在比较大的压力测试环境中 被测的网站功能是否保持正确 操作步骤 1 可以将视图切换到TreeView视图2 在树形菜单中选择需要插入检查点的一项 然后点鼠标右键 选择将检查点插到该操作执行前 InsertBefore 还是执行后 InsertAfter 3 在弹出对话框中选择webChecks下面的ImageCheck或是TextCheck4 对需要检查点设置相关的属性 LoadRunner基础 Controller可以使用LoadRunnerController来管理和维护方案 LoadRunner使您可以从一个单一的控制点简单有效地控制所有的Vuser LoadRunner基础 创建运行场景使用集合点运行方案监视方案 LoadRunner基础 Controller窗体介绍Controller窗口包含两个选项卡选择 视图 显示输出 则Controller将打开 输出 窗口 会显示方案执行期间生成的错误 警告 通知 调试和批处理消息 设计视图该视图显示方案中的所有Vuser组 脚本的列表 负载生成器计算机以及分配给每个组 脚本的Vuser数 还显示有关方案计划或目标方案 的基本信息 运行视图显示有关运行的Vuser和Vuser组的信息以及联机监视器图 LoadRunner基础 创建运行场景创建手动方案创建面向目标的方案 LoadRunner基础 计划方案计划定义 按方案计划 定义整个方案的设置 加压 选项卡 持续时间 选项卡 减压 选项卡 按组计划 定义各个组的设置 从左侧的框中 选择要计划的Vuser组 开始时间 选项卡 加压 选项卡 持续时间 选项卡 减压 选项卡 注意 Vuser组设置不适用于百分比模式 LoadRunner基础 创建手动方案通过创建并指定脚本 负载生成器和每个组中包括的Vuser数 可以生成手动方案 也可通过 百分比模式 定义要在方案中使用的Vuser的总数 并为每个脚本分配负载生成器和占总数一定百分比的Vuser 运行场景描述在测试活动中发生的各种事件 一个运行场景包括一个运行虚拟用户活动的LoadGenerator机器列表 一个测试脚本的列表以及大量的虚拟用户和虚拟用户组 可以选择下列两种方法之一来创建方案 手动方案 或 面向目标的方案 在面向目标的方案中 可以定义通过测试要实现的目标 LoadRunner将根据这些目标自动生成方案 LoadRunner基础 加压 选项卡点击EditSchedule按钮 即可进入Schedule设置窗口 点击New新增一个方案名称要确定方案开始的方式 请单击 加压 选项卡 选择下列选项之一 同时加载所有的vuser 同时启动方案中的所有Vuser 启动xx个vuser 每x 时W分W秒 同时开始运行指定数目的Vuser 并在两次Vuser加压之间等待指定的时间 LoadRunner基础 持续时间 选项卡要设置方案的持续时间 请单击 持续时间 选项卡 运行直到完成 在加压完成之后运行x 时W分W秒 所有Vuser都已加压之后 再运行方案约一段指定的时间 无限期运行注意 持续时间设置将覆盖Vuser迭代设置 这意味着 如果将持续时间设为五分钟 那么Vuser将继续在五分钟时间内运行尽可能多的迭代 即使运行时设置仅指定一次迭代 LoadRunner基础 减压 选项卡要确定方案停止的方式 请单击 减压 选项卡 同时停止所有的Vuser 同时停止方案中的所有Vuser 停止x个Vuser 每x 时W分W秒 在指定的时间段内停止一定数目的Vuser LoadRunner基础 设置延迟方案开始时间对于手动和面向目标的方案 您都可以指示LoadRunner在稍后的某个时间点开始运行方案 您可以指定让LoadRunner自发出Run命令以来等待的分钟数 也可以指定让方案开始的特定时间 点击SecnaionStatTime按钮 进入ScenarioStartTime窗口 LoadRunner基础 选择 按组计划 选项创建Vuser组后 您可以通过设置以下内容 计划该组的脚本执行 方案开始后 该组开始运行之前 它必须等待的时间量 在指定时间段内运行的Vuser的数量 在指定时间段内将停止的Vuser的数量 该组运行的时间量注意 Vuser组设置不适用于百分比模式 LoadRunner基础 开始时间 选项卡选择下列三个选项之一 在方案开始时启动组 在方案开始后x时启动 运行该组之前等待指定的时间量 组x完成时启动 指定的组结束运行后开始运行该组 LoadRunner基础 加压 选项卡选择下列选项之一 同时加载所有的Vuser 启动x个Vuser 每x 时W分W秒 同时开始运行指定数目的Vuser 并在两次Vuser加压之间等待指定的时间 注意 方案运行时 您可以在方案中添加Vuser组 然后启用它们 在逐渐加压模式下 如果在方案中的所有Vuser都加压之后添加Vuser组 则新的组将立即开始加载 LoadRunner基础 持续时间 选项卡选择下列选项之一 运行直到完成 在加压完成之后运行x 时W分W秒 初始化时间很长的Vuser在可能方案结束之前无法达到 正在运行 状态 要确保所有的Vuser都在方案中运行 请选中 运行之前初始化所有的Vuser 复选框 LoadRunner基础 减压 选项卡注意 仅当在 持续时间 选项卡中选中了第二个选项时 才适用 减压 选项卡设置 选择下列选项之一 同时停止所有的Vuser 同时停止组中的所有Vuser 停止x个Vuser 每x 时W分W秒 在指定的时间段内停止一定数目的Vuser LoadRunner基础 创建面向目标的方案在面向目标的方案中 您可以定义您希望实现的测试目标 LoadRunner将根据定义的目标自动为您创建一个方案 在一个面向目标的方案中 您可以定义五种类型的目标 虚拟用户数 每秒点击次数 仅WebVuser 每秒事务数 每分钟页面数 仅WebVuser 或方案的事务响应时间 使用 编辑方案目标 对话框可以对方案目标进行定义 注意 要定义每秒事务数或事务响应时间目标类型 脚本中必须包含事务 对于每种目标类型 您可以定义脚本中希望测试的事务 LoadRunner基础 目标的种类每次场景运行只能设置一个目标 VirtualUsersGoal 虚拟用户目标类型 需要测试多少人可以同时运行WebPagesperMinute HitsperSecond TransactionsperSecond 每分钟页面数和每秒点击次数 事务响应时间 Controller试图使用最少的虚拟用户来达到定义的目标 如果使用最少的用户 不能达到目标 增加用户数 直到定义的最大值 TransactionsResponseTime 如果想知道在多少用户并发访问网站时 事务的响应时间达到性能指标说明书中规定响应时间的最大值 LoadRunner基础 方案设置 选项卡在 方案设置 选项卡中 您可以设置方案在达到目标后继续运行的时间长度 以及方案无法达到目标时是否继续 达到目标后再运行 设置方案在达目标后继续运行的时间长度 如果无法达到目标 选择下面两个选项中的一个 停止方案并保存结果 若无法达到您定义的目标 指示Controller停止方案并保存方案结果 继续运行方案 无需达到目标 指示Controller继续运行方案 即使无法达到设定的目标 LoadRunner基础 加载行为 选项卡加压 选择下列选项之一 自动 指示Controller运行一批中默认数量的Vuser 在x时间后达到目标 选择Controller达到目标之前 方案运行的时间 渐进速度 不可用于 每秒事务数 和 事务响应时间 目标类型 选择增长速度 Controller将按照该速度达到您的目标 X时间内的X虚拟用户数 点击次数 页面数 注 以上的说明是以选择的目标为VirtualUsers为基础的 选择不同的目标 内容会稍微有一点不同 LoadRunner基础 使用集合点在方案运行期间 可以通过使用集合点指示多个Vuser同时执行任务 集合点可以在服务器上创建密集的用户负载 并使LoadRunner能够测量服务器在负载状态下的性能 通过创建集合点 可以确保多个Vuser同步操作 当Vuser到达某个集合点时 它就会被Controller滞留在该处 当达到要求的Vuser数或者经过一段指定的时间后 Controller就会从集合中释放Vuser LoadRunner基础 集合点创建过程1 选择 方案 集合 将打开 集合信息 对话框 2 从 集合 框中选择集合 然后单击 策略 按钮 将打开 策略 对话框 选择策略3 单击 确定 保存设置 LoadRunner基础 设置集合策略设置集合策略可以决定Vuser如何处理集合点 释放策略 设置一次有几个Vuser从集合中释放超时 从集合中释放Vuser之前 Controller要等待多长时间 每个Vuser到达集合点之LoadRunner都会等待一个最大超时间隔 这个超时间隔是为下一个到达的Vuser设置的 如果下一个Vuser没能在超时时间内到达 Controller就会合中释放所有Vuser 每当有新Vuser到达 计时器就会重置为零 默认的超时是三十秒 LoadRunner基础 运行方案运行方案时 会为Vuser组分配负载生成器并执行它们的Vuser脚本 在方案执行期间 LoadRunner将 记录在Vuser脚本中定义的事务的持续时间 执行包括在Vuser脚本中的集合 收集Vuser生成的错误 警告和通知消息在方案运行时 您可以监视每个Vuser 查看由Vuser生成的错误 警告和通知消息以及停止Vuser组和各个Vuser 可以指示LoadRunner允许单个Vuser或组中的Vuser在停止前完成它们正在运行的迭代 在停止前完成它们正在运行的操作或者立即停止运行 LoadRunner基础 监视方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年spark合并数组考试题及答案
- 《2025年企业劳动用工风险防范及劳动合同更新方案》
- 2025年高端化学品运输合同定制化服务条款
- 2025年有色金属行业资源循环利用产业链产业链金融创新与产业升级报告
- 地下停车场租赁合同的
- 2025年认识会计职业题目及答案
- 2025年纺织服装行业智能化生产人才培养与发展报告
- 2025年海洋生态保护与修复技术培训手册报告
- 2025年智慧港口自动化装卸设备在港口智能化建设中的产业生态优化
- 2025年物理常识题目及答案
- 《应用文写作》中职全套教学课件
- 小学英语开学第一课-课件
- 《塑料门窗工程技术规程》JGJ103-2008
- OGSM战略规划框架:实现企业目标的系统化方法论
- 第2课《树立科学的世界观》第1框《世界的物质性》-【中职专用】《哲学与人生》同步课堂课件
- (正式版)JBT 9229-2024 剪叉式升降工作平台
- 沃特玛通信基站用铁锂电池
- CPK 生成数据工具
- 建设项目安全设施“三同时”(直接使用版)课件
- 媒介文化与休闲异化
- 股权融资合作协议fa财务顾问协议
评论
0/150
提交评论