版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20XX/XX/XXAPI接口测试实战指南:Postman+JMeter从入门到精通汇报人:XXXCONTENTS目录01
API测试概述与工具选型02
Postman基础操作指南03
Postman高级功能应用04
API测试用例设计方法论CONTENTS目录05
JMeter性能测试基础06
JMeter高级压测技术07
实战案例:完整测试流程演示08
常见问题排查与最佳实践API测试概述与工具选型01保障系统交互质量的核心环节随着微服务架构和前后端分离模式的普及,API已成为软件系统的核心连接纽带,超过80%的互联网流量通过API交互,其稳定性直接影响系统整体质量。提升开发效率与协作水平通过API测试可在开发早期发现缺陷,减少后期调试成本,同时为前后端并行开发提供支持,借助Mock服务等功能加速开发流程。实现自动化与持续集成的基础API测试易于自动化,可集成到CI/CD流程,如通过Postman的Newman工具实现每次代码提交后的自动测试,确保功能稳定性。降低维护成本与风险全面的API测试能有效验证接口功能、异常处理及安全性,减少线上故障,据统计,完善的API测试可使生产环境问题减少40%以上。API测试在现代开发中的价值Postman与JMeter功能定位对比
核心应用场景差异Postman专注于API功能调试与自动化测试,提供可视化界面,适合接口开发阶段的快速验证;JMeter则聚焦于性能压测,支持高并发模拟,主要用于评估系统在负载下的表现。
功能特性对比Postman优势在于接口请求构建、环境变量管理、断言脚本编写及团队协作;JMeter强项在于多线程并发控制、分布式测试、性能指标监控(如吞吐量、响应时间)和复杂场景模拟。
工具协同应用策略开发阶段使用Postman进行接口功能验证和自动化测试脚本编写,系统上线前通过JMeter执行性能压测,两者结合形成从功能到性能的完整测试闭环。测试工具选择策略与适用场景
功能测试工具对比Postman提供可视化界面,适合日常接口调试、自动化测试脚本编写及团队协作;cURL为轻量级命令行工具,适用于快速验证和服务器环境脚本编写。
性能测试工具选型Postman(Newman)适合API功能回归测试的自动化执行;JMeter专为高并发负载测试和性能分析设计,支持压力测试、吞吐量评估及分布式测试。
团队协作与文档工具Postman通过工作区实现集合与环境共享;Apifox/Swagger偏向一体化协作平台,解决API设计与测试数据不一致问题,适合全生命周期管理。
工具选择决策矩阵根据测试阶段(开发/测试/生产)、团队规模(个人/团队)、测试类型(功能/性能/安全)选择工具,例如开发阶段用Postman调试,上线前用JMeter做压力测试。Postman基础操作指南02Postman安装步骤访问Postman官网下载对应系统版本(Windows/macOS/Linux),建议使用桌面客户端。安装完成后注册或登录账户以同步数据,首次启动可选择工作区类型并进行主题设置。JMeter安装配置需先安装Java8+环境,从ApacheJMeter官网下载压缩包并解压。Windows系统双击bin目录下jmeter.bat启动,Linux系统通过命令行执行jmeter.sh。可配置环境变量方便调用,支持中文界面设置。Postman核心界面布局采用三栏式结构:左侧为Collections/Environments等功能菜单,中间为请求配置区(含方法、URL、参数、Body等),右侧为响应展示区(含响应体、响应头、状态码等信息)。JMeter主要组件布局主界面包含测试计划、线程组、取样器、配置元件、断言和监听器等核心组件。测试计划为根节点,线程组模拟并发用户,取样器发送请求,监听器(如查看结果树、聚合报告)用于结果分析。环境安装与界面功能布局HTTP请求构建完整流程选择请求方法根据接口文档选择合适的HTTP方法,如GET(查询)、POST(提交)、PUT(更新)、DELETE(删除)等,确保与接口设计一致。配置请求URL与参数输入接口完整URL,通过Params标签页添加查询参数(键值对形式),支持路径参数(如/users/{id})和动态变量引用(如{{base_url}})。设置请求头信息在Headers标签页添加必要请求头,如Content-Type(指定数据格式,如application/json)、Authorization(认证信息,如BearerToken)等。编写请求体内容根据请求方法和接口要求,在Body标签页选择格式(form-data、x-www-form-urlencoded、raw等),填写请求数据,如JSON格式的POST请求体。配置认证与前置脚本在Authorization标签页选择认证类型(如OAuth2.0、APIKey)并输入凭据;通过Pre-requestScript标签页编写请求前执行的脚本,如生成时间戳或签名。请求参数与认证方式配置请求参数配置策略
支持GET/POST等HTTP方法,通过Params、Headers、Body三要素精准控制请求参数。Params用于URL查询参数,Headers设置请求头信息,Body支持form-data、x-www-form-urlencoded、raw等多种格式。主流认证方式实现
涵盖BearerToken、OAuth2.0、APIKey等6种主流认证方式。BearerToken需在Headers中添加Authorization:Bearer{token};OAuth2.0可通过Authorization标签页配置获取令牌流程;APIKey通常在Headers或Params中传递。动态参数注入技巧
利用Pre-requestScript生成动态参数,如计算签名或生成随机数。示例:pm.environment.set("timestamp",newDate().getTime());可在请求参数中通过{{timestamp}}引用。参数化测试数据管理
支持用户定义变量、函数生成器(如_uuid、_random、_time)及CSV文件读取三种参数化方式。CSVDataSetConfig可设置RecycleonEOF实现循环取值,适用于多组测试数据场景。响应结果查看与基本调试响应结果核心区域解析Postman响应区域包含状态码、响应时间、响应体(支持JSON/XML/HTML等格式)、响应头和Cookies。例如,发送GET请求后,可直观查看状态码200、响应时间245ms及JSON格式的返回数据。常见响应状态码识别重点关注2xx(成功)、4xx(客户端错误)、5xx(服务器错误)状态码。如400表示请求参数错误,401代表未授权,500为服务器内部错误,可快速定位接口问题类型。调试工具与技巧利用Postman的控制台(Console)输出日志,排查变量引用、脚本执行问题;通过Pre-requestScript预处理请求数据,Tests脚本验证响应结果,提升调试效率。响应数据异常排查步骤当响应异常时,先检查请求参数与接口文档一致性,再验证环境变量配置,最后通过对比不同环境(开发/测试)的响应差异,定位问题根源。Postman高级功能应用03集合(Collection)管理与批量执行
01集合的创建与组织结构设计集合是Postman管理API请求的基本单位,可通过点击"Collections"→"CreateCollection"创建。建议按业务模块(如用户管理、订单管理)或测试类型(如冒烟测试、回归测试)进行多级文件夹嵌套组织,例如"用户管理API/认证相关/用户登录-POST/auth/login"。
02集合级配置与共享协作支持在集合级别配置Pre-requestScript和Tests脚本,实现请求前的全局预处理和统一的响应验证。通过工作区可将集合与团队成员共享,并设置Admin、Editor、Viewer等不同角色权限,确保协作安全有序。
03集合运行器(CollectionRunner)批量执行通过集合运行器可按顺序、迭代运行整个集合,支持导入CSV/JSON格式的数据文件进行数据驱动测试。运行后可查看详细的测试报告,包括每个请求的状态、响应时间及断言结果,便于快速定位失败用例。
04批量执行实战案例以"用户管理API"集合为例,包含登录、创建用户、查询用户、删除用户等接口。使用集合运行器选择测试环境,设置迭代次数为10次,导入包含不同用户数据的CSV文件,一键执行完成全流程测试,并生成包含通过率、平均响应时间的测试报告。环境变量与全局变量应用技巧
环境变量的核心价值环境变量用于管理不同环境(如开发、测试、生产)的配置差异,如服务器地址、认证令牌等。通过定义变量并在请求中引用,可实现环境一键切换,避免手动修改每个请求的URL,显著提升测试效率并降低出错率。
环境变量配置与使用步骤首先创建环境(如“开发环境”),定义变量键值对(如base_url:);在请求URL中通过{{base_url}}/users格式引用;切换环境时,所有引用该变量的请求自动更新为对应环境的值。
全局变量与环境变量的区别全局变量作用于所有请求和环境,适用于常量数据(如固定的API密钥);环境变量仅在当前选中环境生效,用于区分不同环境的动态配置(如不同环境的base_url)。使用时需注意变量作用域,避免冲突。
动态变量设置与实战案例通过Pre-requestScript或Tests脚本动态设置变量,例如在登录请求后提取token:pm.environment.set("auth_token",jsonData.token)。实战中,结合环境变量实现多环境无缝切换,如从开发环境测试顺利过渡到生产环境验证。测试脚本编写与断言实战
Postman测试脚本基础结构Postman测试脚本采用JavaScript语法,通过pm.test()函数定义测试用例,包含测试描述和断言逻辑两部分。基础结构为:pm.test("测试描述",function(){//断言逻辑});
常用断言方法与应用场景状态码验证:pm.response.to.have.status(200);响应时间检测:pm.expect(pm.response.responseTime).to.be.below(500);响应体字段校验:pm.expect(jsonD).to.eql("John");响应头检查:pm.response.to.have.header("Content-Type")。
实战案例:登录接口断言脚本以登录接口为例,脚本示例:pm.test("状态码为200",function(){pm.response.to.have.status(200);});constjsonData=pm.response.json();pm.test("响应包含token",function(){pm.expect(jsonData.token).to.not.be.undefined;});
Pre-requestScript应用技巧Pre-requestScript用于请求发送前的预处理,如生成动态参数:pm.environment.set("timestamp",newDate().getTime());或计算签名:pm.environment.set("sign",CryptoJS.MD5(apiKey+timestamp).toString());Newman简介与安装Newman是Postman的命令行工具,支持在终端执行Postman集合。安装需先配置Node.js环境,通过npm命令"npminstall-gnewman"完成安装,如需生成HTML报告需额外安装"newman-reporter-html"。核心命令与参数基础执行命令:"newmanrun集合文件.json"。常用参数包括:-e指定环境变量文件、-g指定全局变量文件、-rhtml生成HTML报告、-n设置迭代次数。例如:"newmanruntest_collection.json-edev_env.json-rhtml"。CI/CD集成流程1.导出Postman集合为JSON文件;2.在CI/CD平台(如Jenkins、GitLabCI)配置Node.js环境;3.添加Newman执行步骤,如JenkinsPipeline中加入"newmanrunmy_collection.json";4.配置测试报告归档与失败通知。实战案例:Jenkins集成在Jenkins项目中,构建步骤添加"Executeshell",输入命令:"newmanrun./collections/api_test.json-e./envs/prod.json-rhtml--reporter-html-exportreport.html"。构建后可在工作空间查看HTML报告,结合邮件插件发送测试结果。Newman命令行与CI/CD集成API测试用例设计方法论04测试用例设计核心原则
等价类划分原则将输入数据划分为有效等价类(符合接口规范的正常参数组合)和无效等价类(异常或超出范围的参数),覆盖接口的各种输入场景。
边界值分析原则针对数值型参数,重点测试边界值及边界附近的值,如最小值、最大值、最小值减1、最大值加1,确保接口对边界条件的处理正确。
业务场景覆盖原则基于实际业务流程,设计端到端的测试场景,覆盖接口间的依赖关系,如登录→获取用户信息→下单等连贯操作,验证业务逻辑的正确性。
异常与安全测试原则包含参数缺失、格式错误、特殊字符注入等异常情况测试,以及权限控制、敏感信息加密等安全测试,确保接口的健壮性和安全性。功能测试场景覆盖策略
01基础功能覆盖:核心业务流程验证针对API核心功能设计正向测试用例,验证正常输入下的功能正确性。例如用户登录接口需测试有效用户名密码组合,确保返回正确token及200状态码。
02异常场景覆盖:参数校验与错误处理对必选参数缺失、数据类型错误、边界值超限等异常情况进行测试。如用户ID为负数或字符串时,接口应返回400错误及明确提示信息。
03业务逻辑覆盖:状态流转与依赖接口模拟真实业务场景中的接口调用链,如"登录→创建订单→支付"流程,验证各接口间参数传递及状态转换的正确性,确保业务闭环通畅。
04安全场景覆盖:认证与权限控制测试未授权访问、越权操作等安全场景,如普通用户尝试访问管理员接口应返回403状态码;验证敏感数据(如密码)传输是否加密。边界值与异常场景设计
边界值测试核心策略针对数值型参数,重点测试最小值、最大值、临界值(min-1、max+1),如分页参数page_size测试0、1、50、51(假设上限50),确保接口对边界条件的处理正确。
参数异常场景覆盖包含必填参数缺失、参数类型错误(如字符串传入数字)、特殊字符注入(如SQL注入尝试)、空值/超长字符串等,验证接口的错误处理和提示能力。
业务异常场景设计模拟业务逻辑异常,如重复提交订单、已删除资源访问、权限越界操作、并发数据冲突等场景,测试接口的幂等性、安全性和数据一致性。
Postman断言实现示例使用pm.test断言验证异常响应,如状态码400校验:pm.test("参数缺失返回400",function(){pm.response.to.have.status(400);});结合JSON提取器判断错误信息。接口关联与数据驱动测试接口关联:参数传递机制
接口关联是指通过提取前一个接口的响应数据(如token、用户ID)作为后续接口的请求参数,实现业务流程的连贯性。常见场景包括登录后获取令牌用于后续操作,或创建订单后使用订单ID查询详情。Postman接口关联实现
在Postman中,可通过Tests脚本提取响应数据并设置为环境变量。例如:使用提取登录接口返回的token,后续接口通过引用。JMeter接口关联实现
JMeter通过后置处理器实现关联,如正则表达式提取器或JSONExtractor。以JSONExtractor为例,配置JSONPath表达式,将提取值保存到变量供后续请求使用。数据驱动测试:参数化策略
数据驱动测试通过多组输入数据验证接口在不同条件下的表现,提升测试覆盖率。支持CSV/JSON文件导入、内置函数生成(如随机数、时间戳)及数据库查询等方式。实战案例:用户登录-订单创建流程
1.登录接口返回token→2.提取token作为环境变量→3.创建订单接口携带token和动态生成的订单数据(如)→4.验证订单创建响应中的订单ID非空。JMeter性能测试基础05JMeter安装配置与界面介绍
环境准备与安装步骤JMeter基于Java开发,需先安装JDK8及以上版本。访问JMeter官网下载最新版压缩包,解压后无需安装即可使用。Windows系统通过bin/jmeter.bat启动,Linux/macOS通过bin/jmeter.sh启动。
环境变量配置(可选)为方便命令行调用,可将JMeter的bin目录路径添加到系统环境变量PATH中。验证配置是否成功:在终端输入jmeter-v,显示版本信息即配置完成。
主界面核心组件布局JMeter采用三栏式布局:左侧为测试计划树(包含线程组、取样器等),中间为当前选中组件的配置面板,右侧为辅助功能区。顶部工具栏提供常用操作按钮,如新建、保存、运行测试等。
常用配置与个性化设置可通过Options菜单调整界面语言(支持中文)、主题(深色/浅色)及字体大小。建议初次使用时配置HTTP请求默认值、信息头管理器等全局元件,提升脚本编写效率。测试计划核心要素明确压测目标接口、性能指标(响应时间、吞吐量、错误率)、测试环境与数据准备,形成可执行的压测方案。线程组参数配置线程数(并发用户数)、Ramp-Up时间(线程启动时长)、循环次数/持续时间,控制压测负载强度与持续周期。实战配置示例模拟100并发用户,2秒内启动完成,持续压测10分钟:线程数=100,Ramp-Up=2,循环次数=永久,持续时间=600秒。测试计划与线程组配置HTTP请求与参数化设置HTTP请求核心要素配置涵盖请求方法(GET/POST/PUT/DELETE等)、URL地址、请求头(如Content-Type:application/json)、请求体(表单/JSON/文件等格式)及认证信息(BearerToken/OAuth等)的设置方法,确保请求符合接口规范。参数化实现方式包括用户定义变量(固定值)、函数生成器(如UUID、随机数、时间戳)、CSV/JSON文件读取(数据驱动测试)三种方式,解决测试数据动态化和多场景覆盖问题。参数化实战应用以登录接口为例,使用CSV文件存储多组用户名密码,通过参数化实现批量验证;利用随机函数生成唯一订单号,测试接口幂等性,提升测试效率与覆盖度。常用监听器与结果分析查看结果树展示每次请求的详细信息,包括请求头、响应头、响应体等,用于验证请求是否正确发送及响应数据是否符合预期,便于调试测试脚本中的问题。聚合报告提供关键性能指标统计,如样本数、平均响应时间、90%/95%/99%响应时间、错误率、吞吐量等,帮助整体评估接口性能表现。图形结果以图形化方式展示响应时间等数据的变化趋势,直观反映测试过程中性能指标的波动情况,便于观察性能瓶颈出现的时间点。HTML报告生成通过命令行执行测试后生成,包含丰富的图表和统计数据,如响应时间分布、吞吐量趋势等,可作为性能测试结果的正式文档进行分享和分析。JMeter高级压测技术06断言与关联实现方法Postman常用断言类型支持状态码验证(如pm.response.to.have.status(200))、响应体字段检查(如pm.expect(jsonD).to.eql("John"))、响应时间断言(如pm.expect(pm.response.responseTime).to.be.below(500))等,通过Tests标签页编写JavaScript脚本实现。JMeter断言组件应用包括响应断言(验证响应文本、状态码)、JSON断言(通过JSONPath提取并验证字段)、持续时间断言(设置响应时间阈值),可添加到线程组或单个请求下,断言失败时标记请求为错误。接口关联技术:Postman变量提取通过Tests脚本提取响应数据(如vartoken=pm.response.json().token;pm.environment.set("auth_token",token)),使用{{auth_token}}在后续请求中引用,支持环境变量、全局变量和集合变量。接口关联技术:JMeter提取器正则表达式提取器(通过正则匹配响应文本)、JSONExtractor(通过JSONPath提取字段),将提取值保存为变量,在后续请求中通过${变量名}引用,适用于如登录后token传递等场景。分布式压测环境搭建分布式压测架构设计采用主从架构模式,1台主控机(Controller)协调多台压力机(Agent),通过负载均衡策略分配并发压力,突破单节点性能瓶颈,支持万级并发场景。环境准备与节点配置主控机与压力机需配置Java8+环境,网络互通且关闭防火墙;压力机安装JMeter并同步测试脚本与依赖包,建议每节点内存≥8G、CPU≥4核。JMeter分布式配置步骤修改perties:设置server_port=1099,remote_hosts=agent1:1099,agent2:1099;主控机通过命令"jmeter-n-ttest.jmx-r"启动分布式测试。监控与结果聚合方案使用JMeter分布式结果收集器汇总各节点数据,结合InfluxDB+Grafana实时监控TPS、响应时间等指标,确保压测过程可观测、结果可追溯。性能测试报告生成与解读JMeter报告生成方法通过命令行执行:jmeter-n-t测试计划.jmx-l结果文件.jtl-e-o报告输出目录,生成包含图表和统计数据的HTML报告。核心性能指标解读重点关注平均响应时间、90%/95%/99%响应时间、吞吐量(TPS/QPS)、错误率及数据传输量,评估系统性能瓶颈。性能瓶颈分析案例某电商接口压测显示,当并发用户达500时,95%响应时间从200ms突增至1.2s,错误率上升至5%,经排查为数据库连接池耗尽导致。优化建议与报告呈现根据报告数据提出针对性优化方案,如增加服务器资源、优化SQL查询、调整线程池配置等,并以图表形式直观展示测试结果与优化效果对比。持续性能测试与监控集成
JMeter与CI/CD流水线集成通过JMeter命令行模式(jmeter-n-ttest.jmx)将性能测试脚本集成到Jenkins、GitLabCI等CI/CD工具中,实现代码提交后自动触发性能测试,及时发现性能regression。
性能监控指标设置关键监控指标包括:响应时间(平均、90%/95%/99%分位值)、吞吐量(Requests/sec)、错误率(Error%)、服务器资源利用率(CPU、内存、磁盘I/O)。
自动化告警机制配置性能阈值告警,当响应时间超过500ms、错误率>1%或CPU利用率>80%时,通过邮件、Slack等渠道发送告警通知,确保问题及时响应。
性能测试报告自动化生成使用JMeter命令(jmeter-gresult.jtl-oreport)生成HTML格式性能报告,包含趋势图表、性能瓶颈分析,支持测试结果可视化与历史数据对比。实战案例:完整测试流程演示07用户登录接口功能测试全流程
测试用例设计基于等价类划分和边界值分析法,设计包含正常登录、用户名/密码为空、长度超限、特殊字符、SQL注入等10-15个测试用例,覆盖功能、异常、安全场景。
Postman测试执行在Postman中创建登录请求,配置POST方法、请求URL、Content-Type:application/json,输入测试数据。通过Tests标签页编写断言脚本验证状态码(200/400)、响应体包含token/错误信息。
接口关联处理使用JSON提取器从登录响应中提取token:$.token,设置为环境变量。后续接口在Headers中引用{{token}}实现鉴权传递,确保业务流程连贯性。
测试结果分析通过Postman响应结果树检查每个用例执行情况,重点关注状态码正确性、响应时间(目标<500ms)、错误提示准确性。对失败用例截图记录,提交缺陷报告。订单系统性能压测实战测试环境与数据准备搭建与生产环境一致的测试环境,包括服务器配置、数据库、缓存等;准备10万级用户数据、50万级商品数据及100万级历史订单数据,确保数据覆盖各类业务场景。压测场景设计设计单接口压测(如创建订单接口)、混合场景压测(浏览商品→加入购物车→下单→支付全流程)及峰值场景压测(模拟促销活动期间每秒5000订单请求)。JMeter脚本开发使用CSVDataSetConfig参数化订单信息(商品ID、数量、用户ID);通过JSONExtractor提取登录token;添加HTTP信息头管理器设置Content-Type与Authorization。性能指标监控与分析实时监控响应时间(目标<500ms)、吞吐量(目标>300TPS)、错误率(目标<0.1%)及服务器CPU/内存/磁盘IO;使用聚合报告与图形结果分析性能瓶颈。压测结果与优化建议当并发用户达2000时,订单创建接口响应时间升至800ms,错误率1.2%;建议优化数据库索引、引入Redis缓存热点商品信息及实施服务水平扩展。测试数据管理与参数化实践
Postman参数化方式支持用户定义变量、环境变量、全局变量及数据文件(CSV/JSON)导入,实现多场景数据动态替换,例如通过{{variable}}语法引用环境变量base_url。
J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湘西土家族苗族自治州吉首市2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 典当业务员操作规程测试考核试卷含答案
- 殡仪服务员操作规程水平考核试卷含答案
- 糖料作物栽培工安全应急模拟考核试卷含答案
- 室内装修验房师发展趋势强化考核试卷含答案
- 厦门市同安区2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 桂林市雁山区2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 双鸭山市岭东区2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- MBA金融方向就业前景分析
- 绵阳市盐亭县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 2026高考蓝皮书高考关键能力培养与应用第1节 3.组织与运用
- 2025年智联招聘国企笔试题库及答案
- 2025年康复治疗师资格考试历年真题及解析
- 车间主任转正述职报告
- 输液科静脉输液操作规范
- 上海某高校学生心理健康事件应急干预与支持办法
- 2025广东广州市黄埔区文冲街招聘垃圾分类督导员和垃圾分类专管员3人备考练习题库及答案解析
- GB/T 18226-2025公路交通工程钢构件防腐技术条件
- 车间高温烫伤安全培训课件
- 新闻学专业毕业论文范文
- 2025四川省县域经济研究中心考核招聘2人笔试参考题库附答案解析
评论
0/150
提交评论