当前位置: 首页 > news >正文

《软件测试与质量控制》实验报告五 功能自动化测试

目  录

一、实验学时

二、实验目的

三、实验环境

(一)硬件环境:

(二)软件环境:

四、实验内容

1、实验方案:

2、实验步骤:

3、设计思路:

1、明确测试目标

2、确定测试范围

3、选择合适的测试方法

4、定义预期结果

5、编写自动化测试报告

五、实验结果

1、自动化测试环境

(1)软件环境

(2)硬件环境

2、功能自动化测试

(1)自动化测试工具安装

(2)谷歌浏览器参数配置

(3)CRM客户管理功能自动化测试过程

六、实验小结(包括问题和解决办法、心得体会、意见与建议等)

1、实验问题及解决方法:

2、实验心得体会:

3、实验意见与建议:


一、实验学时

        2学时

二、实验目的

        1. 掌握软件测试自动化的基础知识

        2. 进一步理解软件测试自动化的基本原理

        3. 掌握功能自动化测试工具AutoRunner4.5.0.6的使用

        4. 提高自动化测试实践能力

三、实验环境

(一)硬件环境:

        1.笔记本电脑一台

        2.内存大小:64G

        3.磁盘空间:1TB

(二)软件环境:

        1.操作系统:Windows(64位)11

        2.文本撰写:WPS

        3.软件工具:自动化测试工具AutoRunner 4.5.0.6、桌面计算器软件

        4.浏览器工具:Google浏览器

        5.被测系统:CRM客户管理系统

、实验内容

1、实验方案:

        根据老师上课所讲知识以及《软件测试方法和技术》第九章内容相结合,通过使用AutoRunner自动化测试工具对CRM客户管理系统的新增客户功能点进行自动化测试,我们可以录制并优化测试脚本,同时利用参数化和检查点进行正反例功能的自动化测试。最终,测试结果将在结果输出区显示。

2、实验步骤:

        (1)深入了解软件测试自动化的方法和技术。

        (2)分析CRM客户管理系统的新增客户功能需求和自动化特点,确定自动化测试的重点和范围。

        (3)使用AutoRunner自动化测试工具,设计并执行针对新增客户功能的自动化测试用例,并记录测试结果。

        (4)根据测试结果,编写测试报告,分析系统在不同测试条件下的表现,并提出改进建议和优化方案。

        (5)完成对应实验报告内容的撰写,提交最终版的实验报告至雨课堂。

3、设计思路:

1、明确测试目标

        确认自动化测试的主要目标,包括验证系统的响应时间、功能正确性和稳定性等指标。

2、确定测试范围

        针对CRM客户管理系统的新增客户功能,在正常、异常和极限条件下进行自动化测试。

3、选择合适的测试方法

        选择适当的自动化测试方法和工具,设计测试用例并生成测试数据。

4、定义预期结果

        明确预期的功能和自动化指标,以便与实际测试结果进行比较和分析。

5、编写自动化测试报告

        编写完整的测试报告,总结测试结果和分析,并提出系统优化的建议。

        通过以上步骤,可以全面评估CRM客户管理系统的功能特性,发现潜在的问题,并提出改进建议,以确保系统在不同条件下的稳定性和可靠性。

、实验结果

1自动化测试环境

1软件环境

2硬件环境

2功能自动化测试

(1)自动化测试工具安装

        1、在浏览器的网址栏中输入“http://www.spasvo.com/autorunner/”后进行AutoRunner工具的下载:

5-2-1 AutoRunner自动化测试工具下载界面

        2、AutoRunner工具下载完成后双击进行工具安装:

5-2-2 AutoRunner工具安装界面1

        3、点击“确定”后进行许可证协议条款内容的查看:

5-2-3 AutoRunner工具安装界面2

        4、点击“我接受”进入到安装路径的选择界面进行对应安装路径的选择:

5-2-4 AutoRunner工具安装界面3

        5、选择对应的“目标文件夹”后点击“安装”按钮进行AutoRunner工具的安装操作:

5-2-5 AutoRunner工具安装界面4

        6、AutoRunner工具安装完成后即可进入到已完成安装的界面,此时点击“完成”按钮即可进入到工具内:

5-2-6 AutoRunner工具安装界面5

        7、双击安装的AutoRunner自动化测试工具进行启动:

5-2-7 AutoRunner自动化测试工具启动

        8、点击“继续”按钮后即可进入到对应工作站位置的选择窗口,在此窗口中选择自己项目存放的位置,即工作站的位置即可:

5-2-8 工作站选择窗口

        9、创建完毕工作站后即可直接进入到AutoRunner自动化测试工具的主界面:

5-2-9 AutoRunner自动化测试工具主界面

(2)谷歌浏览器参数配置

        1、双击打开自己桌面的谷歌浏览器进入到谷歌浏览器的主界面:

5-2-10 谷歌浏览器主界面

        2、点击主界面右上角的三个小点使其打开对应导航栏选择的菜单进行“设置”界面的选择:

5-2-11 谷歌浏览器设置界面选择

        3、进入到设置界面后查看对应的版本信息并将其复制:

5-2-12 谷歌浏览器版本信息

        4、在网址栏中输入“https://googlechromelabs.github.io/chrome-for-testing/”后回车进入到谷歌浏览器驱动下载的界面:

5-2-13 谷歌浏览器驱动下载

        5、在网址栏中输入“https://storage.googleapis.com/chrome-for-testing -public/125.0.6422.60 /win64/chromedriver-win64.zip”后回车进行对应版本驱动包的下载:

5-2-14 谷歌浏览器驱动包下载

        6、在文件夹的地址栏中输入“D:\AutoRunner\AutoRunner\browser\ driver\chrome”后回车进行对应的文件目录并创建一个文件夹,命名为“125”进行对应驱动包的放置:

5-2-15 谷歌浏览器安装目录

        7、将下载好的压缩包内部的谷歌浏览器驱动程序放置到创建的“125”文件夹下:

5-2-16 谷歌浏览器驱动包放置

        8、点击AutoRunner自动化测试工具左上角导航栏中的“设置”按钮并选择“录制设置”进行谷歌浏览器参数的配置,在“录制选项”中选择“谷歌浏览器”,以及谷歌配置中的版本号选择刚才放置的版本“125”,谷歌浏览器的相关配置信息选择完毕后即可点击“确定”按钮:

5-2-17 谷歌浏览器录制信息配置

(3)CRM客户管理功能自动化测试过程

        1、点击AutoRunner自动化测试工具左上角的“文件”按钮后在菜单栏中依次选择“新建”-》“项目”即可:

5-2-18 CRM客户管理功能自动化测试项目创建

        2、点击“项目”按钮之后在“新建项目”的弹窗中填写项目名称,此处直接填写“CRM管理系统”即可:

5-2-19 项目名称填写

        3、项目名称填写完毕后即可在左侧的窗口栏中看到对应创建的项目,鼠标右击此项目后即可看到对应的菜单栏,在菜单栏中点击“新建脚本”即可:

5-2-20 新建脚本

        4、点击后即会弹出插入的一个弹窗,在文本栏中输入“Add_User”即可:

5-2-21 脚本名称填写

        5、点击弹窗中的“确定”按钮即可完成对应脚本文件的创建:

5-2-22 脚本文件创建完毕

        6、点击页面左上角的“录制”按钮并选择“开始录制”进行脚本文件的录制工作:

5-2-23 脚本录制

        7、点击“开始录制”后会弹出一个窗口,在此窗口中继续点击“确定”按钮即可进行脚本内容的录制工作:

5-2-24 脚本录制确定

        8、点击“确定”按钮之后即可进入到对应的浏览器录制界面进行对应操作脚本的录制工作:

5-2-25 脚本录制执行

        9、进入到放置CRM管理系统程序的文件夹下双击进行项目的启动:

5-2-26 CRM管理系统启动

        10、在脚本录制的网址栏中输入网址“http://localhost/login.asp”后进入到CRM管理系统界面:

5-2-27 CRM管理系统界面

        11、输入对应的账号和密码进行CRM管理系统的登录工作,账号为“test”,密码为“test”:

5-2-28 CRM管理系统登录

        12、成功登录后打开左侧栏目中的“客户管理”并选择“新增客户”进入到新增客户界面:

5-2-29 新增客户界面

        13、点击“公司背景”的下拉菜单选择“学校”后在公司名称中填写“新疆大学”并提交即可:

5-2-30 客户信息添加

        14、信息添加完毕后点击“退出系统”按钮完成系统的退出操作即可:

5-2-31 CRM管理系统退出

        15、系统成功退出后点击录制窗口中的“暂停”按钮实现对应脚本的暂停录入:

5-2-32 脚本录制暂停

        16、在AutoRunner自动化测试工具界面中即可查看到相关的所有点击事件以及相关的操作:

5-2-33 事件监听结果

        17、双击脚本文件即可查看对应的脚本信息:

5-2-34 脚本代码信息

        18、点击脚本下方的“参数表”按钮进行相关参数信息的填写工作:

5-2-35 脚本参数信息填写

        19、修改脚本代码使其可以正常的执行对应的参数化定义信息:

5-2-36 参数化脚本循环执行

        脚本代码:

ar.openURL("http://localhost/login.asp");
ar.browser("上海泽众软件科技有限公司客户管理系统").clickControl("INPUT_username");
ar.browser("上海泽众软件科技有限公司客户管理系统").setValue("INPUT_username","test");
ar.browser("上海泽众软件科技有限公司客户管理系统").setValue("INPUT_password","test");
ar.browser("上海泽众软件科技有限公司客户管理系统").clickControl("INPUT_登录_按钮");
ar.browser("管理菜单").clickControl("A_客户管理");
ar.browser("管理菜单").clickControl("A_新增客户");for(ParameterData pd : ar.getParameterDataList("Add_User.xls")/*.subList(0, 6)*/)
{//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数ar.browser("上海泽众软件技术有限公司").clickControl("INPUT_Client_Company");ar.browser("上海泽众软件技术有限公司").setValue("INPUT_Client_Company",""+pd.getFrom("name"));ar.browser("上海泽众软件技术有限公司").select("SELECT_Client_beijing","学校");ar.browser("上海泽众软件技术有限公司").clickControl("INPUT_Client_Date");ar.browser("上海泽众软件技术有限公司").setValue("INPUT_Client_Date","2024/5/20/");// ar.browser("上海泽众软件科技有限公司客户管理系统").//record element:FRAMEar.browser("上海泽众软件技术有限公司").//record element:TEXTAREA_Client_Textar.browser("上海泽众软件技术有限公司").//record element:TBODYar.browser("上海泽众软件技术有限公司").clickControl("INPUT_确认_按钮");if(pd.getFrom("用例类型").equals("反例")){String username = ar.chromeBoxText();ar.chromeBoxOk();} else{System.out.println("新增客户成功");}
}ar.browser("管理菜单").clickControl("A_退出系统");

        20、点击界面左上角的“执行”按钮进行脚本的运行操作:

5-2-37 脚本执行

        21、脚本成功执行完毕后即可点击脚本下方的“输出”按钮进行相关执行结果信息的查看:

5-2-38 脚本信息执行输出

        22、在参数表中填写对应的正反参数用例进行自动化测试:

5-2-39 正反参数用例创建

        23、正反测试用例创建完成后点击“执行”按钮进行对应脚本的运行工作:

5-2-40 正反测试用例自动化脚本执行

        24、自动化脚本执行完毕后点击脚本下方的“输出”按钮进行相关运行结果内容的输出查看:

5-2-41 脚本执行结果输出

        25、查看完毕后点击左上角的“帮助”按钮并选择菜单列表中的“帮助”进入到对应的帮助文档窗口,点击“高手进阶”后并选择下拉菜单中的“添加校验点”进行对应校验点添加方式查看:

5-2-42 帮助文档查阅

        26、点击左上角的“编辑”按钮并选择菜单列表中的“校验数据库”选项进行数据库的相关校验工作:

5-2-43 创建数据库校验

        27、打开自己的数据库并查看对应的数据库配置信息:

5-2-44 数据库信息界面

        28、点击“校验数据库”后便会弹出一个校验数据库的窗口,在窗口中点击类型的下拉菜单选择“MySQL”,在“地址校验”输入栏中填写“172.18.61.119:3309/spasvo_crm”,在“用户名”中填写“root”,在密码中填写“root”,SQL语句中填写“select Client_Company from t_client where Client_ID = 20”,“期望值”输入框中填写“农业大学”:

5-2-45 数据库信息配置

        29、点击“确定”按钮后即可完成数据库的配置操作,修改对应的自动化测试脚本并进行脚本的执行:

5-2-46 数据库校验脚本执行

        脚本代码:

ar.openURL("http://localhost/login.asp");
ar.browser("上海泽众软件科技有限公司客户管理系统").clickControl("INPUT_username");
ar.browser("上海泽众软件科技有限公司客户管理系统").setValue("INPUT_username","test");
ar.browser("上海泽众软件科技有限公司客户管理系统").setValue("INPUT_password","test");ar.browser("上海泽众软件科技有限公司客户管理系统").clickControl("INPUT_登录_按钮");
ar.browser("管理菜单").clickControl("A_客户管理");
ar.browser("管理菜单").clickControl("A_新增客户");for(ParameterData pd : ar.getParameterDataList("Add_User.xls")/*.subList(0, 6)*/)
{//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数ar.browser("上海泽众软件技术有限公司").clickControl("INPUT_Client_Company");ar.browser("上海泽众软件技术有限公司").setValue("INPUT_Client_Company",""+pd.getFrom("name"));ar.browser("上海泽众软件技术有限公司").select("SELECT_Client_beijing","学校");ar.browser("上海泽众软件技术有限公司").clickControl("INPUT_Client_Date");ar.browser("上海泽众软件技术有限公司").setValue("INPUT_Client_Date","2024/5/20/");// ar.browser("上海泽众软件科技有限公司客户管理系统").//record element:FRAMEar.browser("上海泽众软件技术有限公司").//record element:TEXTAREA_Client_Textar.browser("上海泽众软件技术有限公司").//record element:TBODYar.browser("上海泽众软件技术有限公司").clickControl("INPUT_确认_按钮");if(pd.getFrom("用例类型").equals("反例")){String username = ar.chromeBoxText();ar.chromeBoxOk();} else{System.out.println("新增客户成功");}
}
ar.checkDatabase("MySQL", "172.18.61.119:3309/spasvo_crm", "root", "root", "select Client_Company from t_client where Client_ID = 20", "农业大学");
ar.browser("管理菜单").clickControl("A_退出系统");

        30、脚本执行完毕后即可点击“日志信息”进行相关数据库校验过程中产生的日志信息记录的查看:

5-2-47 日志记录信息查看

        31、日志记录查看完毕后点击脚本下方的“输出”按钮即可进行相关数据库校验结果的输出内容查看:

5-2-48 数据库校验结果输出

六、实验小结(包括问题和解决办法、心得体会、意见与建议等)

1、实验问题及解决方法:

        1)实验问题:录制脚本时无法捕捉某些用户操作。

解决方法:检查AutoRunner的配置,确保其兼容所测试的应用程序,必要时使用手动插入脚本命令来补充自动录制不完整的操作。

        2)实验问题:脚本录制后无法重现操作。

解决方法:仔细检查录制的脚本,确认每一步操作的准确性,并修正可能的路径或对象识别错误,确保脚本能够准确模拟用户行为。

        3)实验问题:自动化测试工具在执行脚本时崩溃。

解决方法:检查测试环境的硬件和软件配置,确保其满足AutoRunner的运行要求,并尝试重新安装工具或升级到最新版本以解决兼容性问题。

        4)实验问题:测试脚本运行速度过慢,影响测试效率。

解决方法:优化脚本逻辑,减少不必要的等待时间,合理使用同步和异步操作,提高脚本的执行效率,确保测试在可接受的时间内完成。

        5)实验问题:测试过程中断言失败,无法准确识别测试结果。

解决方法:检查断言条件,确保其与预期结果一致,调整断言逻辑以提高准确性,并使用适当的断言方法来验证测试结果的正确性。

        6)实验问题:参数化测试数据格式不一致,导致脚本失败。

解决方法:统一参数化数据格式,确保数据输入的一致性,使用数据清洗工具对数据进行预处理,保证参数化数据在测试中正确应用。

        7)实验问题:脚本调优后仍存在随机失败情况。

解决方法:使用日志和调试功能查找失败原因,逐步排除环境问题和脚本逻辑错误,确保脚本在各种情况下稳定运行,并增加重试机制应对偶发性错误。

        8)实验问题:检查点设置不当,导致误报和漏报。

解决方法:重新评估检查点的设置,确保其覆盖关键功能点,并调整检查点的条件和阈值,以提高测试结果的准确性和可靠性。

        9)实验问题:多浏览器兼容性测试中脚本不一致。

解决方法:分别录制和调试不同浏览器的测试脚本,确保每个脚本在对应浏览器中正常运行,并使用浏览器特定的调试工具检查脚本兼容性。

        10)实验问题:测试数据量大,手动管理困难。

解决方法:使用自动化数据管理工具,进行数据生成、清洗和导入,确保测试数据的高效管理和一致性,减少手动操作带来的错误。

2、实验心得体会:

        (1)通过使用AutoRunner进行自动化测试,我深刻体会到自动化测试在提高测试效率方面的巨大优势。传统的手工测试不仅耗时,而且容易因为人为因素导致错误和不一致。相比之下,自动化测试工具能够快速、准确地执行大量测试用例。我们在实验中利用AutoRunner录制脚本,进行脚本调优,并且通过参数化和检查点功能实现了正反例功能的自动化测试。这一过程大幅缩短了测试周期,提高了测试覆盖率。尤其是在多次重复测试和回归测试中,自动化测试展现了其高效性和稳定性。此外,自动化测试工具还能够生成详细的测试报告,便于分析和发现问题。通过这次实验,我认识到自动化测试不仅能够节省时间和人力资源,还能提高测试结果的准确性和一致性,从而提升软件的整体质量。在未来的工作中,我将更加重视自动化测试的应用,努力提升自身在这方面的技能,以期在实际项目中实现更高的工作效率和更优的测试效果。

        (2)在实验过程中,我深刻体会到团队协作的重要性。每个团队成员都有不同的技能和知识,通过定期的交流和讨论,我们能够相互学习,共同解决问题。尤其是在面对复杂的测试场景和工具使用时,团队的力量显得尤为重要。例如,某些团队成员对AutoRunner工具较为熟悉,他们能够快速帮助其他成员解决工具使用中的难题,从而提高整个团队的工作效率。通过这种协作方式,我们不仅在短时间内掌握了工具的使用,还能够及时发现并解决实验中的各种问题。此外,团队成员之间的积极沟通和经验分享,使得每个人都能从中受益,提高了整体的技术水平和测试能力。通过这次实验,我认识到在软件测试过程中,团队协作是不可或缺的一部分。良好的团队协作不仅能够提高工作效率,还能增强团队的凝聚力和战斗力。在未来的工作中,我将更加注重团队协作,积极参与团队交流,与团队成员共同成长,共同进步。

        (3)通过本次实验,我积累了丰富的测试经验,尤其是在自动化测试工具的使用和脚本编写方面。以前,我主要依赖手工测试,对于自动化测试了解不多。在这次实验中,我不仅学会了如何使用AutoRunner进行脚本录制和调优,还掌握了参数化测试和检查点的设置方法。通过反复实践和调试,我逐渐熟悉了自动化测试的各个环节,从测试用例的设计到脚本的执行和结果分析,整个流程都有了全面的了解。实验中遇到的各种问题,也让我在解决问题的过程中提升了自己的能力。例如,脚本录制后无法重现操作时,我学会了如何检查和修正路径或对象识别错误;当脚本运行速度过慢时,我通过优化脚本逻辑,提高了执行效率。这些宝贵的经验,使我在面对复杂测试任务时更加从容和自信。我深刻认识到,丰富的测试经验是提升测试能力的关键,通过不断的实践和学习,我将继续积累更多的测试经验,为未来的测试工作奠定坚实的基础。

3、实验意见与建议:

        (1)在进行自动化测试实验前,提供系统和详细的前期培训至关重要。这些培训应涵盖AutoRunner工具的基本操作、脚本编写技巧、常见问题及其解决方法等内容。详细的培训能够帮助实验参与者迅速上手,提高他们的操作熟练度,减少因不熟悉工具而导致的错误和低效。为了达到这一目的,建议在实验前安排一系列培训课程,覆盖从基础知识到高级技巧的各个方面。同时,提供丰富的学习材料,如操作手册、视频教程和常见问题解答文档等,以便参与者在遇到问题时可以迅速找到解决方案。为了让参与者更好地理解和掌握所学内容,可以安排一些模拟练习,让他们在正式实验前进行预热,熟悉测试流程和操作步骤。此外,组织互动性强的培训环节,如动手实践、分组讨论和案例分析等,可以有效增强学习效果,确保每个参与者都能在培训中获得足够的知识和技能,为正式实验的顺利进行打下坚实的基础。

        (2)优化和完善实验环境是保证自动化测试实验顺利进行的重要前提。首先,实验环境的硬件配置应满足测试工具的运行要求,如足够的内存和存储空间,以确保测试工具能流畅运行。此外,应定期检查和维护实验设备,确保硬件设备和网络的稳定性,避免因设备故障或网络问题导致实验中断。其次,软件环境的配置也需适应各种测试需求,包括多种操作系统和浏览器版本的安装,以便进行跨平台和多浏览器的兼容性测试。在实验前,确保所有软件的版本都是最新的,并经过充分测试,避免版本不兼容的问题。在实验过程中,设置一个专门的环境监控和维护团队,实时监控实验环境的状态,及时解决突发问题。提供详细的实验环境配置文档和问题解决指南,帮助参与者在遇到环境问题时能够快速定位和解决。通过这些措施,可以大幅提升实验环境的稳定性和可靠性,为实验的顺利进行提供坚实保障。

        (3)在实验过程中,提供更多的指导和支持对实验的成功至关重要。实验指导人员应具备丰富的自动化测试经验和解决问题的能力,能够实时解答参与者的疑问,帮助他们克服技术难题。这可以通过设置在线支持渠道,如即时聊天工具或专门的支持论坛,让参与者在遇到问题时能够迅速获得帮助。此外,安排定期的实验辅导课程,由经验丰富的指导人员讲解实验中的关键步骤和常见问题,通过示范操作和互动交流,帮助参与者更好地理解和掌握实验内容。在实验开始前,提供详细的实验指南和操作手册,包含实验步骤、常见问题及解决方法、脚本示例等内容,使参与者在实验中有章可循。为了提高实验效率和效果,可以通过定期的实验进度检查,了解参与者的进展情况和遇到的困难,及时提供针对性的帮助和指导。通过这些措施,可以确保每个参与者都能顺利完成实验任务,提高整体的实验效果和质量。

http://www.lryc.cn/news/615028.html

相关文章:

  • 【Linux】Socket编程——UDP版
  • 第八章 SQL编程系列-Oracle慢SQL优化实战:从执行计划到索引设计的深度解析
  • UE蓝图节点Add Impulse和Add Torque in Radians
  • FMS 2025存储峰会获奖技术全景解读
  • 【线性代数】目录
  • 7、docker |其余命令
  • Datawhale+AI夏令营_让AI读懂财报PDF task2深入赛题笔记
  • RK3568笔记九十九:基于FFMPEG拉取RTSP流MPP硬解码视频显示
  • 使用Navicat备份数据库MySQL、PostGreSQL等
  • (一)React复习小满(userImmer/userMemo/useContext/userCallback/userRef)
  • 【SQL进阶】用EXPLAIN看透SQL执行计划:从“盲写“到“精准优化“
  • ABP VNext + Akka.NET:高并发处理与分布式计算
  • c++ opencv调用yolo onnx文件
  • 2025-08-09通过授权码的方式给exe程序充值
  • jQuery 零基础学习第一天
  • 计算BERT-BASE参数量
  • 【数据分享】各省农业土地流转率(2010-2023)
  • 安全合规3--防火墙
  • 光伏面板损伤检出率↑91%!陌讯多模态识别算法在无人机巡检的落地实践
  • 建筑物实例分割数据集-9,700 张图片 城市规划与发展 灾害评估与应急响应 房地产市场分析 智慧城市管理 地理信息系统(GIS) 环境影响评估
  • Android MVP架构详解:从理论到实践
  • leetcode2090:半径为K的子数组平均值(定长滑动窗口)
  • C# 使用iText获取PDF的trailer数据
  • 【lucene】HitsThresholdChecker命中阈值检测器
  • 【Datawhale AI夏令营第三期】多模态RAG
  • 《Learning To Count Everything》论文阅读
  • 论文阅读-ZeroDCE和ZeroDCE++
  • OpenCV图像裁剪与 ROI 操作
  • Kubernetes 集群密钥与机密管理方案对比分析:Vault、Sealed Secrets 与 AWS KMS
  • vue+flask山西非遗文化遗产图谱可视化系统