版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于工作流的Web软件测试技术研究与应用目录第一章绪论 21.1选题依据及研究意义 21.2国内外研究现状 21.3论文研究内容 31.4论文篇章结构 3第二章软件测试技术 42.1软件测试的作用和意义 42.2软件测试的流程 42.3本章小结 5第三章工作流技术 63.1工作流的定义 63.2工作流框架的选择 63.3工作流的建模 83.4本章小结 9第四章工作流技术在软件测试中的实践应用 104.1需求分析 104.2基于工作流的模型设计 114.2.1易请假流程设计 114.2.2易报修流程设计 124.2.3外出报备流程设计 144.2.4易防疫流程设计 154.3测试流程设计 164.3.1性能测试工具选择 164.3.2性能测试 164.3.3压力测试 184.3.4自动化测试 214.4本章小结 23第五章总结与展望 245.1总结 245.2展望 24参考文献 24致谢 26摘要:基于工作流的Web软件测试技术主要是将工作流技术应用到Web应用系统的测试过程中,以提高测试效率,保证测试一致性,减轻测试人员的工作负担。在Web应用软件的测试中,通过工作流技术对测试流程及各操作步骤之间的业务规则进行抽象和概括,基于协同工作的方式来实现测试业务和流程的自动化,提高测试用例、测试脚本、测试数据的使用效率。具体内容包括:对Web系统基于BPMN(BusinessProcessModelAndNotation)建立工作流模型,研究测试流程及方法,比如进行相关的功能测试、性能测试、自动化测试等,并对比选取合适的工具,结合工作流模型设计测试方案并进行实现。关键词:软件测试;工作流;Web第一章绪论1.1选题依据及研究意义随着软件的复杂性和规模的不断增大,人们对软件质量的要求也越来越高,测试需求增大,软件测试技术逐渐成为人们关注的焦点。同时,互联网的普及使Web软件快速发展,用户对其质量的要求也越来越高。工作流技术是一种有效的管理和协调工作流程的方法,可以提高软件测试的效率和质量。基于工作流的Web软件测试技术研究与应用,可以有效地将工作流技术和软件测试技术相结合,提高软件测试的效率和质量。在Web软件测试中,工作流技术的应用可以帮助测试人员更好的管理测试流程、自动化测试用例、测试报告生成、提高测试覆盖率等。通过工作流技术有助于发现Web软件中的错误和缺陷,从而提高软件的质量和可靠性。在Web软件中使用BPMN业务流程模型和标记法对测试流程进行实践应用。1.2国内外研究现状在现代软件开发的过程中,软件测试是一个不可或缺的环节,是保障软件质量的重要工作[1]。在国外一些成熟和大型的软件企业中,软件测试和软件开发的人员比例已经达到了3:5[2]。在软件测试技术上,国外有着大量的测试工具,比如MercuryInteractive公司在WinRunner[3][4]测试工具针对黑盒测试可检测系统功能是否正常运行。开源的WebInject[5]测试工具可对Web服务进行测试并产生测试报告。上海泽众软件公司AutoRunner[12]测试工具可对Web和windows应用进行测试。TaobaoMobileTestSystem测试框架可对网页进行测试,MobileTestingCenter框架可进行性能测试[13]。然而,在软件测试过程中,依然存在一些问题,例如提测时间不足、引入新的功能可能影响原有的功能,所以需要进行集成测试和版本回归测试。同时,也可能会出现用例遗漏,测试覆盖率不足等问题。工作流技术起源于20世纪70年代中期办公自动化领域的研究,1993年8月,第一个工作流技术标准化的工业组织——工作流管理联盟(WorkflowManagementCoalition,简称WFMC)成立[11]。随着工作流技术的不断发展,逐渐产生了两种工作流分支,包括科学型工作流和业务型工作流。比较热门的业务型工作流系统包括Osworkflow、jbpmn和activiti[6]。工作流技术由于能对流程可视化、处理复杂业务流程等特点,在软件测试的过程、资源和缺陷管理中应用广泛。工作流可解决在多个参与者之间利用计算机按某种预定规则实现自动传递文档、信息或任务,以达到任务目标,可实现部分业务过程在计算机支持下的全自动或半自动化[8]。测试负责人通过工作流引擎进行任务分配,测试人员依据分配的任务进行测试策划、测试设计、测试执行并对测试过程中产生的缺陷进行跟踪。在软件测试过程中引入工作流技术是当前研究的一个热点,工作流的定义和重要性得到了广泛的认可。1.3论文研究内容本文通过研究软件测试的作用、意义、流程,以及工作流技术的定义、框架、建模,在性能、压力、自动化测试中,基于工作流和软件测试结合的方法来提升Web软件在测试过程中的效率和质量,并通过易班学生服务平台进行了相关实践,取得了良好的进展。1.4论文篇章结构第一章为研究内容的背景介绍,包括选题、意义、目前及国内外的研究现状。第二章为软件测试技术的研究,主要研究软件测试的作用、意义、并结合Web系统研究了软件需求分析、编写测试计划、设计测试用例、测试执行、缺陷管理、回归测试、编写测试报告等软件测试流程。第三章为工作流技术的研究,主要研究工作流的概念、工作流框架的选择以及BPMN模型。第四章为研究工作流在Web软件中的建模过程,以易班学生服务平台为例,基于工作流技术对其进行性能、压力、自动化测试。第五章为论文总结和对未来的展望。第二章软件测试技术2.1软件测试的作用和意义软件测试的主要作用是保证软件的质量和性能,以及满足用户的需求。通过测试,可以发现并修复软件中存在的缺陷,从而提高软件的稳定性和可用性。软件测试可以帮助开发人员识别和修复问题,减少因问题导致的返工和维护成本。此外,尽早的发现和解决问题可以使软件快速上线,降低开发成本。同时,软件测试在业务风险、界面优化、改善用户体验等方面也具有一席之地。软件测试是软件开发过程中的重要组成部分,在保证软件质量和提高用户满意度方面起着至关重要的作用。2.2软件测试的流程结合Web软件的特点,可以将其测试过程按如下流程划分:首先,对Web系统进行需求分析,确定测试的对象、工作范围和测试的重点,包括软件需求、概要设计、详细设计等。在业务功能的完整性和性能指标、兼容等方面需重点关注。测试计划通常由测试主管或者高级测试工程师编写,它规定了测试的目标、策略、方法和资源等。Web系统的测试目标主要包括提高软件的质量、保证软件的安全、提升用户体验等,常用策略包括明确产品目标、风险分析、评估质量等。在测试方法上,主要有白盒、黑盒、静态以及动态测试。测试人员根据需求文档和测试计划来设计测试用例并执行,如果出现的结果与预期结果不符,则在缺陷管理工具上提交bug单,同时反馈给相关的开发人员进行修复。在缺陷被修复后,测试人员需要重新进行测试以确保修复,验证通过后关闭bug单。在进行完一轮测试后,可能会出现新的问题或者旧的问题再次出现,这时就需要进行回归测试,确保之前的功能没有受到影响。测试结束后,测试人员编写测试报告,总结测试结果,包括哪些功能正常,哪些功能存在问题,以及如何改进等。2.3本章小结本章主要介绍软件测试的作用和意义,并结合Web系统研究了软件需求分析、编写测试计划、设计测试用例、测试执行、缺陷管理、回归测试、编写测试报告等软件测试流程,明确测试方法和路线。第三章工作流技术3.1工作流的定义工作流是一种计算机支持的协同工作的模型,用于描述工作流程及其各操作步骤之间业务规则的抽象和概括。工作流可解决在多个参与者之间利用计算机按某种预定规则实现自动传递文档、信息或任务,以达到任务目标,可实现部分业务过程在计算机支持下的全自动或半自动化[8]。通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。工作流本身就是一个工程设计思路,在具体场景下,它也是一种实现业务的方式。首先,工作流是一种设计模式,也可以理解成一种思维方式。其次,它不涉及任何具体的编码,所有的业务代码仍然需要手动完成,而只是使用工作流来规划和编排代码的运行方式。工作流主要解决多个参与者按照某种已经规划好的规则来实现自动传递信息或任务,整个过程定义了任务的顺序和触发的条件,可以由一个或多个软件、一个或多个与软件系统协作完成。拿垂直服务举例,审批就是通过工作流引擎直接实现业务。工作流的应用场景也相当广泛,在行政管理、人事管理、客户管理、财务等方面均有涉及。3.2工作流框架的选择目前市面上主流的基于Java语言的开源工作流框架主要有jBPM、Activiti、Flowable、Camunda等。jBPM不支持扩展节点,功能较少,接口难以满足日常工作的需要。Activiti同样不支持扩展节点,维护不及时,功能缺少,但其优点是社区用户多,遇到问题容易找到解决方案,且支持SpringCloud。Flowable支持扩展节点,功能完善,性能稳定性很好,但其缺点是开源版维护不及时、部分功能闭源、仅支持从开始节点运转实例。Camunda基于activiti5,压力测试验证了CamundaBPMN引擎性能更好且稳定。除了BPMN,Camunda还支持CMMN(案例管理)和DMN(决策自动化)。Camunda不仅配备了引擎,还配备了非常强大的建模、任务管理、操作监控和用户管理工具。结合其提供独立的Modeler设计器、优秀的用户体验以及出色的表单管理能力,选择Camunda作为建模框架。3.3工作流的建模基于Camunda框架,对Web系统进行建模的设计如下图:工作流的建模主要有任务(Task)、参与者(Participant)、子流程(Subprocess)、门路(Gateway)、事件(Event)、会签、或签以及表单(form)。其中任务又分为发送任务(sendtask)、接收任务(receivetask)、用户任务(usertask)、手动任务(manualtask)、业务规则任务(businessruletask)、服务任务(servicetask)以及脚本任务(scripttask)。发送任务指向外部Participant发送消息,接收任务即等待外部Participant消息,一旦接收到外部消息该任务就标记为完成状态。用户任务和手动任务均需要人工操作,不同的是用户任务需要指定执行的用户或角色,并提供相应的输入(表单),才能继续执行,而手动任务完成与否不影响流程引擎的继续。业务规则任务用DMN决策模型标记,服务任务通过Web服务来自动完成,脚本任务则是通过引擎可识别的脚本语言来进行自动化操作。参与者又分泳道(Lane)、泳池(Pool)和泳道图(SwimlaneDiagram)。泳道是由相同的角色执行的任务放在一起。而泳池则是组合模式,多名角色和任务共同完成,由泳道组合而成泳池。泳道图展示同一任务流程上的不同进程,明确各个环节。子流程分为嵌套子流程(EmbeddedSubprocess)和事件子流程(EventSubprocess)。子流程由父流程调用,事件触发后才能调用事件子流程。门路包含排它门路(Exclusive(XOR))、并行门路(Parallel(AND))、包含门路(Inclusive(OR))和事件门路(Event-based)。其中排它门路和包含门路可以设置判断条件,并行门路和事件门路不可设置判断条件。排他门路用于多选一,并行门路用于多条路径共同执行,包含门路用于执行部分路径,事件门路用于由事件触发执行路径。事件有开始事件(StartEvent)、结束事件(EndEvent)、中间事件(IntermediateEvent)、消息事件(MessageEvent)、定时事件(TimerEvent)、信号事件(SignalEvent)以及条件事件(ConditionalEvent)。开始事件和结束事件在项目部署里必须定义,中间事件为抛出事件,消息事件可以出现在流程的任何位置。定时事件可用作开始事件、中间事件、边界事件,同时作为边界事件支持中断和非中断。信号事件通过广播通知所有关注此事件的流程。相关变量满足条件时,条件事件触发。会签指多人需要全部审批通过后才能进入下一节点,或签则是虽然有多人负责审批,但只要其中一人同意即可。表单可以嵌入到用户任务中,后续可以在审批中填入相应数据以流转到相应节点,它又分为外置表单和内置表单。外置表单是自己创建表单生成HTML文件,然后让用户任务引用,内置表单则是Camunda自己提供的数字、日期、文本、多选、下拉、单选、图片、iFrame、按钮等,并可以转换为JSON格式数据。3.4本章小结本章介绍了工作流的定义、框架以及建模,分析了jBPM、Activiti、Flowable、Camunda等工作流框架,基于其特点及优势,选择了Camunda框架作为研究对象,并按照标准化、可视化的原则,贯彻每个步骤都有明确任务和责任人的思想,对Web系统进行分析,设计并实现了针对Web系统的BPMN模型。第四章工作流技术在软件测试中的实践应用4.1需求分析易班学生服务平台是一款为教育量身定制的开放型智能应用,是高校教育教学、生活服务、文化娱乐的综合性互动社区。<dependencies>
<dependency>
<groupId>org.camunda.bpm</groupId>
<dependencies>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-external-task-client</artifactId>
<version>${camunda.external-task-client.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
ExternalTaskClientclient=ExternalTaskClient.create()
.baseUrl("http://localhost:8080/engine-rest")
ExternalTaskClientclient=ExternalTaskClient.create()
.baseUrl("http://localhost:8080/engine-rest")
.asyncResponseTimeout(10000)
.build();
4.2基于工作流的模型设计4.2.1易请假流程设计首先学生在易班发起请假流程,填写相应信息并提交后进入辅导员请假审批。设置userName学生姓名,studentNum学生学号,leave请假去向,和approved是否通过。如图1易请假流程图所示。图1易请假流程图部署成功后,填写姓名、学号、请假去向,如图2请假信息图。进入CamundaCockpit查看,流程进行到人工审批,如图3请假审批图。图2请假信息图图3请假审批图4.2.2易报修流程设计学生在易班发起报修,通过DMN设置分类为水电时自动审批通过,派人维修,修理好后结束报修,实现流程自动化。非水电类的报修进入人工审批,设置userName学生姓名,phone电话号码,address地址,type分类,approved是否通过,审批通过后派人维修,不通过则退单。如图4易报修流程图。图4易报修流程图报修审批决策中设置分类为水电时,为true自动执行。如图5报修审批决策图。图5报修审批决策图可以看到分类为水电时,网关通过,进入下一步。如图6报修信息-水电图,图7报修审批-维修图。图6报修信息-水电图图7报修审批-维修图分类不为水电时,执行人工审核。如图8报修信息-非水电图,图9报修审批-审核图。图8报修信息-非水电图图9报修审批-审核图4.2.3外出报备流程设计学生在易班发起外出报备,设置time时间,phone电话,address目的地,approved是否通过,进入辅导员审批。学生凭通过信息外出,拒绝外出时学生不可出校。如图10外出报备流程图。图10外出报备流程图可以看到进入审批流程。如图11外出报备信息图,图12外出报备审批图。图11外出报备信息图图12外出报备审批图4.2.4易防疫流程设计学生登录易班点击易防疫,进入健康打卡页面,在设计流程时,设置填写体温为服务任务,无需工作人员操作。学生填写体温后提交,弹出提示框,显示打卡成功,流程结束。如图13易防疫流程图。图13易防疫流程图4.3测试流程设计4.3.1性能测试工具选择选择性能测试工具时,需要考虑其并发能力、资源监控、是否开源、是否支持录制、是否支持分布式、社区活跃度、是否便于脚本维护、易用性、可扩展性、压测平台编码量等。根据以上因素,对常用的测试工具分析如下:LoadRunner:这是一款商业级性能测试工具,适用于各种体系架构,不仅能预测行为还能进行优化。支持多种协议,为系统负载打造真实环境。但其收费贵,操作较繁琐,不容易上手。Gatling:这是一款开源的性能测试工具,基于Scala语言开发,但其本身只支持HTTP,其他协议需要扩展。KylinTOP:这是一款国产基于AI软件自动化的测试工具,在性能、压力、可靠性测试上都有不俗的表现,并且可对接口、UI、APP进行监控。但其用例维护成本高,版本迭代快,对人员能力要求至少掌握一门脚本语言。JMeter:这是一款开源的性能测试工具,它同样支持多种协议,并且具有良好的可扩展性和灵活性。JMeter的社区非常活跃,可以很容易地找到教程和解决问题的方法。经过对比,JMeter在基于工作流的测试中具有多协议支持、强大的并发测试能力、丰富的测试结果展示、高度的可扩展性等优势,本文选用JMeter工具做性能测试和压力测试。4.3.2性能测试JMeter的工作原理是在工具内设置线程,即用户操作,与被测系统服务端通过HTTP接口互相连接,最终结果展示在界面控制台。以易请假线程组为例,录制从登录到首页,再从首页进入易请假页面,点击普通请假或离校请假,执行并查看结果树,可以看到请求发送成功。图14性能测试图如图14性能测试图,每条HTTP请求的取样器结果都有很多数值信息,主要关注点如下:ConnectTime:JMeter和被测系统建立TCP连接的时间,包括3路握手时间,如果连接复用,值为0。lantency:从发出请求前到接收完第一个响应的时间。loadtime:从发出请求前到接收完所有响应的时间,如果是长消息,往往时长>=lantency,因为有多个响应。Headerssizeinbytes:响应消息头大小。Bodysizeinbytes:响应消息体大小。Sizeinbytes:整个消息大小=Headerssizeinbytes+Bodysizeinbytes。4.3.3压力测试JMeter做压力测试,以易防疫的健康打卡为例,线程数设置240个,即用户的数量。Ramp-Up时间设置120秒,一秒钟两个用户,运行两分钟。如图15压力测试图。图15压力测试图用命令生成测试报告并查看,可以看到HTTP请求发送成功。如图16应用程序性能指标图。Apdex:应用程序性能指标(0~1),1表示所有用户请求均满意,反之0则表示均不满意。Tolerationthreshold:可接受(容忍或满意)阈值,即用户可接受的响应时间。Frustrationthreshold:不可接受(失败)阈值,即用户不可接受响应时间。Laber:采样器名称。图16应用程序性能指标图Label:Sample采样器名称。Samples:总共发送请求数(线程数*循环次数)。FALL:失败次数。Error%:请求失败率。Average:平均响应时间。Min:最小响应时间。Max:最大响应时间。90%Line:90%线,90%用户响应不超过该时间。95%Line:95%线,95%用户响应不超过该时间。99%Line:99%线,99%用户响应不超过该时间。Throughput:吞吐量,一般情况下可看做每秒完成请求数(和QPS类似)。Received:每秒从服务器端接收到的数据量。Sent:每秒从客户端发送的请求的数量。其中Average平均响应时间是需要重点关注的一项指标,如图17statistics图,百分之九十用户响应时间不超过三百五十毫秒,百分之九十九用户响应时间不超过一千五百毫秒。其中,api(数据库)平均响应时间较长,希望改进。图17statistics图ResponseTimesOverTime,即响应时间随时间变化趋势。由于应用需要初始化建立连接以及CPU、内存等分配都会消耗资源,随着系统趋于稳定,响应时间也会趋于稳定。如图18响应时间曲线图。图18响应时间曲线图ActiveThreadsOverTime,即活动线程时间变化曲线图,随着时间变化,每个时间节点上的活动线程数。其变化趋势即并发用户数趋势,相当于我们模拟的并发用户发出请求随着时间变化的趋势。如图19活动线程曲线图,可以看出设置的240个总线程数和120秒显示在这段时间内平均稳定在20个用户。图19活动线程曲线图ResponseTimePercentiles,即响应时间百分比,通过压测数据中所有响应时间统计分析所展示。如图20响应时间百分比图,登录的上坡趋势明显,不太稳定。图20响应时间百分比图4.3.4自动化测试自动化测试是指利用工具模拟人为操作,自动执行测试用例,并生成测试结果的过程。这是一种高效的测试方法,帮助测试人员快速发现软件中的缺陷。它的主要目标是提高测试的效率,减少传统测试的成本和时间。自动化测试多应用于重复耗时、覆盖面广、需要快速反馈等情况,在集成和接口中也应用广泛。好处是它们可以提高测试效率,降低成本,并允许测试人员专注于更具挑战性和创造性的测试。例如,对于大量的API测试,自动化测试可以解放开发人员的双手,大大提高测试效率。driver=webdriver.Firefox()
driver.get('https://yiban.turbosnail.cc/notice/frontend/web/student_login.html')
#最大化浏览器窗口
driver=webdriver.Firefox()
driver.get('https://yiban.turbosnail.cc/notice/frontend/web/student_login.html')
#最大化浏览器窗口
driver.maximize_window()
#学号
driver.find_element(By.ID,'studentNum').send_keys('2022022037')
#姓名
driver.find_element(By.ID,'userName').send_keys('刘星雨')
#学院
collegeSelect=Select(driver.find_element(By.ID,'collegeSelect'))
collegeSelect.select_by_value('网络工程学院')
#班级
classSelect=Select(driver.find_element(By.ID,'classSelect'))
classSelect.select_by_value('22科学与技术1(专升本)')
#确认登录
driver.find_element(By.ID,'submitBtn').click()效果如下:右击该视频,点击对象-显示,播放结束后,点击左下角结束放映或按两次esc键。#滚动页面
#滚动页面
time.sleep(1)
driver.execute_script('window.scrollTo(0,document.body.scrollHeight);')
#点击报修
baoxiu=driver.find_element(By.XPATH,'/html/body/div[7]/a[2]/div/div/p[1]')
baoxiu.click()
time.sleep(1)
#添加
driver.find_element(By.XPATH,'/html/body/a/i').click()
time.sleep(1)
#返回
driver.find_element(By.XPATH,'/html/body/header/div/a/i').click()
time.sleep(1)
#返回主界面
driver.find_element(By.XPATH,'/html/body/header/div/a/i').click()4.4本章小结本章内容主要围绕工作流与软件测试结合,并对被测系统进行JMeter性能测试分析、压力测试、Python+Selenium框架实现自动化测试。在软件测试中应用工作流技术明显提升了效率和质量。在性能方面,被测系统的api(数据库)平均响应较长,仍需要进行优化。在压测方面,多并发数据一旦过大会直接压崩,稳定性需要提高。在自动化测试方面,部分功能加载时间较长,影响用户体验,后续开发人员仍需要进行完善。第五章总结与展望5.1总结通过研究主流的开源工作流引擎和软件测试技术,选取了Camunda作为本文的工作流框架对Web软件进行建模,选用JMeter工具对被测系统进行性能测试分析和压力测试,结合工作流技术进行系统化的软件测试,可以有效提升测试过程的效率和质量。通过对易班学生服务平台的测试,将工作流技术应用到软件测试中,达到了更加高效检测缺陷的预期效果,流程可视化的特点使整个测试流程清晰明了,工作流与软件测试结合提高了测试的效率。在本次研究过程中,也出现了一些小问题,比如对性能测试工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房产代持二零二五年度合同范本示例3篇
- 2025年度建筑劳务外包项目合同书4篇
- 郑州铁路职业技术学院《广播电视采访与写作二》2023-2024学年第一学期期末试卷
- 个人住房贷款赎回协助合同(2024年)3篇
- 2025年度医院科室承包运营质量保证合同4篇
- 2025版炊事员餐饮卫生与食品安全监管协议3篇
- 2025版个人住宅装修安全责任及维修保障协议4篇
- 2025年度购物中心门头形象升级改造合同4篇
- 2025年度住宅小区电动自行车停车库建设合同2篇
- 个性化雕塑订做合同合同2024参考版版B版
- 销售与销售目标管理制度
- 人教版(2025新版)七年级下册英语:寒假课内预习重点知识默写练习
- 2024年食品行业员工劳动合同标准文本
- 2024-2030年中国减肥行业市场发展分析及发展趋势与投资研究报告
- 运动技能学习
- 2024年中考英语专项复习:传统文化的魅力(阅读理解+完型填空+书面表达)(含答案)
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 2024年公安部直属事业单位招聘笔试参考题库附带答案详解
- 临沂正祥建材有限公司牛心官庄铁矿矿山地质环境保护与土地复垦方案
- 六年级上册数学应用题练习100题及答案
- 死亡报告年终分析报告
评论
0/150
提交评论