测试用例编写(功能测试框架)

测试用例的编写需要按照一定的思路进行,而不是想到哪写到哪,一般测试机制成熟的公司都会有公司自己自定义的测试用例模板,以及一整套的测试流程关注点,当然我们自己在测试生涯中也应当积累一套自己的测试框架,所有功能性的测试都可以依据框架的思路来进行,达到事半功倍的效果。

功能测试框架可以包括:界面友好性测试、功能测试、链接测试、容错测试、稳定性测试、常规性能测试、配置测试、算法测试等等。


 

1.1.1 界面友好性测试

1. 风格、样式、颜色是否协调
2. 界面布局是否整齐、协调(保证全部显示出来的,尽量不要使用滚动条
3. 界面操作、标题描述是否恰当(描述有歧义、注意是否有错别字)
4. 操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作)
5. 提示界面是否符合规范(不应该显示英文的cancel、ok,应该显示中文的确定等)
6. 界面中各个控件是否对齐
7. 日期控件是否可编辑
8. 日期控件的长度是否合理,以修改时可以把时间全部显示出来为准
9. 查询结果列表列宽是否合理、标签描述是否合理
10. 查询结果列表太宽没有横向滚动提示
11. 对于信息比较长的文本,文本框有没有提供自动竖直滚动条
12. 数据录入控件是否方便
13. 有没有支持Tab键,键的顺序要有条理,不乱跳
14. 有没有提供相关的热键
15. 控件的提示语描述是否正确
16. 模块调用是否统一,相同的模块是否调用同一个界面
17. 用滚动条移动页面时,页面的控件是否显示正常
18. 日期的正确格式应该是XXXX-XX-XX或XXXX-XX-XXXX:XX:XX
19. 页面是否有多余按钮或标签
20. 窗口标题或图标是否与菜单栏的统一
21. 窗口的最大化、最小化是否能正确切换
22. 对于正常的功能,用户可以不必阅读用户手册就能使用
23. 执行风险操作时,有确认、删除等提示吗
24. 操作顺序是否合理
25. 正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。
26. 系统应该在用户执行错误的操作之前提出警告,提示信息.
27. 页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。
28. 合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。
29. 检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。

30. 背景灰度冻结

 

1.1.2 功能测试

1. 使用所有默认值进行测试

2. 根据所有产品文档、帮助文档中描述的内容要进行遍历测试

3. 输入判断

4. 所有界面出现是和否的逻辑,要测试

5. 异常处理

6. 敏感词

7. 根据需求文档的流程图遍历所有流程图路径

8. 根据程序内容,遍历if elif else switch的逻辑点要遍历

9. 界面各种控件测试

 

如对于输入框测试:

一、字符型输入框:

1. 字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。

2. 长度检查:最小长度、最大长度、最小长度-1、最大长度+1、输入超工字符比如把整个文章拷贝过去。

3. 空格检查:输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空格

4. 多行文本框输入:允许回车换行、保存后再显示能够保存输入的格式、仅输入回车换行,检查能否正确保存(若能,检查保存结果,若不能,查看是否有正常提示)、

5. 安全性检查:输入特殊字符串

(null,NULL,,javascript,,,<html>,<td>)、输入脚本函数(<script>alert("abc")</script>)、doucment.write("abc")、<b>hello</b>)</p> <p> </p> <p>二、数值型输入框:</p> <p>1. 边界值:最大值、最小值、最大值+1、最小值-1</p> <p>2. 位数:最小位数、最大位数、最小位数-1最大位数+1、输入超长值、输入整数</p> <p>3.异常值、特殊字符:输入空白(NULL)、空格或"~!@#$%^&*()_+{}|[]\:"<>?;',./?;:'-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用粘贴拷贝查看是否能正常提交、word中的特殊功能,通过剪贴板拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等、</p> <p>输入负整数、负小数、分数、输入字母或汉字、小数(小数前0点舍去的情况,多个小数点的情况)、首位为0的数字如01、02、科学计数法是否支持1.0E2、全角数字与半角数字、数字与字母混合、16进制,8进制数值、货币型输入(允许小数点后面几位)、</p> <p>4. 安全性检查:不能直接输入就copy</p> <p> </p> <p>三、日期型输入框:</p> <p>1. 合法性检查:(输入0日、1日、32日)、月输入[1、3、5、7、8、10、12]、日输入[31]、月输入[4、6、9、11]、日输入[30][31]、输入非闰年,月输入[2],日期输入[28、29]、输入闰年,月输入[2]、日期输入[29、30]、月输入[0、1、12、13]</p> <p>考虑开始日期与结束日历的比较,特别是在查询的时候.</p> <p>2. 异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&*(){}[]等可能导致系统错误的字符</p> <p>3. 安全性检查:不能直接输入,就copy,是否数据检验出错?</p> <p> </p> <p>1.1.3 业务流程测试(主要功能测试)</p> <p>业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。</p> <p>如某一功能模块具有最基本的增删改查功能,则需要进行以下测试:</p> <p>1. 单项功能测试(增加、修改、查询、删除)</p> <p>2. 增加——>增加——>增加(连续增加测试)</p> <p>3. 增加——>删除</p> <p>4. 增加——>删除——>增加(新增加的内容与删除内容一致)</p> <p>5. 增加——>修改——>删除</p> <p>6. 修改——>修改——>修改(连续修改测试)</p> <p>7. 修改——>增加(新增加的内容与修改前内容一致)</p> <p>8. 修改——>删除</p> <p>9. 修改——>删除——>增加(新增加的内容与删除内容一致)</p> <p>10. 删除——>删除——>删除(连续删除测试)</p> <p> </p> <p>1.1.4 链接测试</p> <p>主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。<br> 可以使用特定的工具如XENU来进行链接测试。</p> <p> </p> <p>1.1.5 容错测试</p> <p>1. 输入系统不允许的数据作为输入</p> <p>2. 把某个相关模块或者子系统停掉,验证对当前系统的影响</p> <p>3. 配置文件删除或者配置错误</p> <p>4. 数据库注入错误数据</p> <p> </p> <p>1.1.6 稳定性测试</p> <p>1. 系统不间断运行(7*24),验证是否内存泄露、系统其他资源是否存在泄露</p> <p>2. 如果很紧急上线,可以跑一晚上或者周末跑两天。</p> <p>一般压力很大的情况下,数据库连接数问题、内存泄露问题会曝露的比较快但是死锁可能不能体现,所以要看系统重要性,如12306稳定性则最好7*24小时</p> <p> </p> <p>1.1.7 常规性能测试</p> <p>1. 连接速度测试<br> 用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。<br> 另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。<br><br> 2. 负载测试<br> 负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?<br><br> 3. 压力测试<br> 负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。<br> 进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。<br> 压力测试的区域包括表单、登陆和其他信息传输页面等</p> <p> </p> <p>1.1.8 易用性测试</p> <p>1. 系统界面的控件是否可以通过tab键遍历,并且顺序合理</p> <p>2. 主要功能的入口和操作是否易于理解</p> <p>3. 界面是否布局合理,功能是否易于查找和使用</p> <p>4. 操作步骤</p> <p>5. 操作习惯</p> <p>6. 有足够的提示信息,且信息文字描述准确</p> <p> </p> <p>1.1.9 兼容性测试</p> <p>兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,<br> 包括操作系统兼容和应用软件兼容,可能还包括硬件兼容<br> 比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。</p> <p> </p> <p>除了上面所说的这些测试以外,还有算法测试、配置测试、安全性测试等等,在工作中不断总结和分析,形成自己的功能测试框架,当你把这份工作做起来以后,对于你自己对于测试团队而言都是一份很有价值的事情,你的测试思路也会变得更全面。</p> <p> </p> <p> </p> <p> </p> <p><strong>一、文本框为字符型</strong><br>   必填项非空校验:<br>   1、必填项未输入--程序应提示错误;<br>   2、必填项只输入若干个空格,未输入其它字符--程序应提示错误;<br>   字段唯一性校验:(不是所有字段都作此项校验,视实际项目情况而定)<br>   1、新增时输入重复的字段值--必须提示友好信息;  <br>   2、修改时输入重复的字段值--必须提示友好信息;<br>   字段长度校验:  <br>   输入[最小字符数-1]--程序应提示错误;   <br>   输入[最小字符数]--OK;  <br>   3、输入[最小字符数+1]--程序应提示错误;  <br>   4、输入[最大字符数-1]--OK;<br>   5、输入[最大字符数]--OK;   <br>   输入[最大字符数+1]--程序应提示错误;<br>   ?字段为特殊字符校验:<br>   1、输入域如对某些字符禁止输入时,限制是否成功,提示信息是否友好 ;   <br>   2、中文、英文、空格,数字,字符,下划线、单引号 等所有特殊字符的组合 ;<br>   3、所有特殊字符都必须进行测试<br>   ?字段为特殊代码校验:   <br>   输入htm代码:比如” <font>你好</font>”;--必须以文本的形式将代码显示出来。     <br>   2、输入JavaScript代码:比如<param name=“MovieWindowWidth” value=“320”>;--必须以文本的形式将代码显示出来。<br>   多行文本框输入:   <br>   1、是否允许回车换行 ;<br>   2、保存后再显示能够保持输入时的格式 ;    <br>   3、仅输入回车换行,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示 ;<br>   4、仅输入空格,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示 。<br><strong>  二、文本框为数值型</strong><br>   边界值:<br>   1、输入[最小值-1]--程序应提示错误;<br>   2、输入[最小值]--OK;<br>   3、输入[最大值]--OK;<br>   4、输入[最大值+1]--程序应提示错误;<br>   位数:<br>   1、输入[限制位数]--OK;<br>   2、输入[限制位数+1]--根据实际项目而定,是否自动四舍五入成限制位数,还是提示信息;<br>   3、输入[限制位数-1]--OK;<br>   ?异常值、特殊值:<br>   1、输入非数值型数据:汉字、字母、字符--程序应提示错误;<br>   2、输入负数--根据实际项目而定,如果不允许输入负数,必须提示友好信息;<br>   3、字段禁止直接输入非数值型数据时,使用“粘贴”、“拷贝”功能尝试输入,并测试能否正常提交保存--只能使用“粘贴”、“拷贝”方法输入的特殊字符应无法保存,并应给出相应提示 ;<br>   4、全角数字和半角数字的情况--全角数字不能保存,提示友好信息,半角数字正常保存;<br>   5、首位为零的数值:如01=1--视实际项目情况而定;<br><strong>  三、文本框为日期型</strong><br>   合法性检查:<br>   1、日输入[0日]--程序应提示错误;<br>   2、日输入[1日]--OK;<br>   3、日输入[32日]--程序应提示错误;<br>   4、月输入[1、3、5、7、8、10、12月]、日输入[31日]--OK;<br>   5、月输入[4、6、9、11月]、日输入[30日]--OK;<br>   6、月输入[4、6、9、11月]、日输入[31日]--程序应提示错误;<br>   7、输入非闰年,月输入[2月]、日输入[28日],比如2009.2.28--OK;<br>   8、输入非闰年,月输入[2月]、日输入[29日],比如2009.2.29--程序应提示错误<br>   9、(闰年)月输入[2月]、日输入[29日],比如2008.2.29--OK;<br>   10、(闰年)月输入[2月]、日输入[30日],比如2008.2.30--程序应提示错误;<br>   11、月输入[0月]--程序应提示错误;<br>   12、月输入[1月]--OK;<br>   13、月输入[12月]--OK;<br>   14、月输入[13月] --程序应提示错误;<br>   格式检查:<br>   1、不合法格式:2009-09、 2009-09 -、200-2-2;<br>   2、视具体项目而定是否合法:2009/09/01、2009.09.01 、20090901、2009-09-01 ;<br>   异常值、特殊值:<br>   1、输入汉字、字母、字符--程序应提示错误;<br>   四、文本框为时间型<br>   合法性检查:<br>   1、时输入[24时] --程序应提示错误;<br>   2、时输入[00时] --OK;<br>   3、分输入[60分] --程序应提示错误;<br>   4、分输入[59分] --OK;<br>   5、分输入[00分] --OK;<br>   6、秒输入[60秒] --程序应提示错误;<br>   7、秒输入[59秒] --OK;<br>   8、秒输入[00秒] --OK;<br>   格式检查:<br>   不合法格式:12:30:、 123000;<br>   2、视具体项目而定是否合法:12:30、 1:3:0;<br>   异常值、特殊值:<br>   1、输入汉字、字母、字符--程序应提示错误;<br>   2、系统中所涉及时间是否取服务器时间;<br>   页功能我们常碰到的一般有以下几个功能:<br>   1、首页、上一页、下一页、尾页。<br>   2、总页数,当前页数<br>   3、指定跳转页<br>   4、指定每页显示条数<br>   当然,有一些是少于多少页,全部以数字的形式显示,多于多少页后,才出现下一页的控件。本文暂且用以上四点来做为通用的用例来设计吧。<br>   对于“首页、上一页、下一页、尾页”。翻页链接或按钮的测试,主要要检查的测试点有:<br>   1、有无数据时控件的显示情况<br>   2、在首页时,首页和上一页是否能点击<br>   3、在尾页时,下一页和尾页是否能点击<br>   4、在非首页和非尾页时,四个按钮功能是否正确<br>   5、翻页后,列表中的记录是否仍按照指定的排序列进行了排序<br>   对于“总页数,当前页数总页数,当前页数”,主要要检查的测试点有:<br>   1、总页数是否等于总的记录数/指定每页条数<br>   2、当前页数是否正确<br>   针对以上测试用例如下:<br>   step 1: 列表无记录<br>   expect: 1、四个翻页控件变灰不可点击<br>   2、列表有相应的无数据信息提示<br>   3、不可指定页数<br>   4、不可指定跳转页<br>   5、总页数显示为0<br>   6、当前页数显示为0<br>   step 2: 列表的记录数<=指定的每页显示条数<br>   expect: 1、四个翻页控件变灰不可点击<br>   2、总页数显示为1<br>   3、当前页数显示为1<br>   step 3: 列表的记录数>指定的每页显示条数<br>   expect: 1、默认在首页,当前页数为1             <br>   2、列表的数据按照指定的排序列正确排序<br>   3、记录数与数据库相符<br>   4、总页数=记录数/指定的每页显示条数<br>   step 4: 列表的记录数>指定的每页显示条数,在首页<br>   expect: 1、首页变灰不可点击<br>   2、上一页变灰不可点击<br>   3、下一页可点击,从(每页指定条数+1)条记录开始显示,当前页数+1<br>   4、尾页可点击,显示最后页的记录<br>   step 5: 列表的记录数>指定的每页显示条数,在中间的某页<br>   expect: 1、首页可点击,显示1到每页指定条数的记录<br>   2、上一页可点击,显示上一页的记录<br>   3、下一页可点击,从后一页的记录<br>   4、尾页可点击,显示最后页的记录<br>   5、列表的数据按照指定的排序列正确排序<br>   6、当前页数为所在页<br>   step 6:列表的记录数>指定的每页显示条数,在尾页<br>   expect: 1、首页可点击,显示1到每页指定条数的记录<br>   2、上一页可点击,显示上一页的记录<br>   3、下一页变灰不可点击<br>   4、尾页变灰不可点击<br>   5、列表的数据按照指定的排序列正确排序<br>   6、当前页数为最后一页的页数<br>   对于“指定跳转页”,主要要检查的测试点有:<br>   1、是否能正常跳转到指定的页数<br>   2、输入的跳转页数非法时的处理<br>   对于“指定每页显示条数”,主要要检查的测试点有:<br>   1、是否有默认的指定每页显示条数<br>   2、指定每页的条数后,列表显示的记录数,页数是否正确<br>   3、输入的每页条数非法时的处理<br>   针对以上测试用例如下:<br>   step 7:输入每页显示条数为小于总记录的正整数<br>   expect: 1、每页显示条数更新成指定的条数<br>   2、超过指定的条数的记录分页显示<br>   3、总页数更新成列表的记录数/每页显示条数<br>   step 8:输入每页显示条数为0、负数、小数<br>   expect: 1、提示“每页显示条数必须为大于1的整数”<br>   2、提示后每页显示条数恢复为上次生效的条数<br>   step 9:输入每页显示条数大于或等于总记录数的正整数时<br>   expect: 1、四个翻页按钮变灰不可点击<br>   2、总页数显示为1<br>   3、当前页数显示为1<br>   step 10:输入每页显示条数长度超过数据库指定的长度<<<maxlen>>><br>   expect: 1、提示每页显示条数不能超过<<<maxlen>>>位<br>   2、提示后每页显示条数恢复为上次生效的条数<br>   step 11:输入每页显示条数为非数值、非法值时<br>   expect: 1、提示每页显示条数必须为大于1的整数<br>   2、提示后每页显示条数恢复为上次生效的条数<br>   step 12:输入跳转的页数为存在的页数<br>   expect: 1、正确跳转到指定的页数<br>   step 13:输入跳转的页数不存在或非法值<br>   expect: 1、跳转的页数值置为1,显示第一页的数据</p> <p>1:易用性:<br>   按钮名称应该易懂,用词准确,屏弃没楞两可的字眼,要与同一界面上的其他按钮易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作。<br>   易用性细则:<br>   1):完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。<br>   2):完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。<br>   3):按功能将界面划分局域块,用Frame框括起来,并要有功能说明或标题。<br>   4):界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能。<br>   5):界面上首先应输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置。<br>   6):同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。<br>   7):分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab<br>   8):默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作。<br>   9):可写控件检测到非法输入后应给出说明并能自动获得焦点。<br>   10):Tab键的顺序与控件排列顺序要一直,目前流行总体从上到下,同时行间从左到右的方式。<br>   11):复选框和选项框按选择几率的高底而先后排列。<br>   12):复选框和选项框要有默认选项,并支持Tab选择。<br>   13):选项数相同时多用选项框而不用下拉列表框。<br>   14):界面空间较小时使用下拉框而不用选项框。<br>   15):选项数叫少时使用选项框,相反使用下拉列表框。<br>   16):专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性词眼。<br>   2: 规范性:<br>   通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、工具厢、状态栏、滚动条、右键快捷菜单”的标准格式,可以说:界面遵循规范化的程度越高,则易用性相应的就越好。小型软件一般不提供工具厢。<br>   规范性细则:<br>   1):常用菜单要有命令快捷方式。<br>   2):完成相同或相近功能的菜单用横线隔开放在同一位置。<br>   3):菜单前的图标能直观的代表要完成的操作。<br>   4):菜单深度一般要求最多控制在三层以内。<br>   5):工具栏要求可以根据用户的要求自己选择定制。<br>   6):相同或相近功能的工具栏放在一起。<br>   7):工具栏中的每一个按钮要有及时提示信息。<br>   8):一条工具栏的长度最长不能超出屏幕宽度。<br>   9): 工具栏的图标能直观的代表要完成的操作。<br>   10):系统常用的工具栏设置默认放置位置。<br>   11):工具栏太多时可以考虑使用工具厢。<br>   12):工具厢要具有可增减性,由用户自己根据需求定制。<br>   13):工具厢的默认总宽度不要超过屏幕宽度的1/5。<br>   14): 状态条要能显示用户切实需要的信息,常用的有:<br>   目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。<br>   15):滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。<br>   16):状态条的高度以放置五好字为宜,滚动条的宽度比状态条的略窄。<br>   17):菜单和工具条要有清楚的界限;菜单要求凸出显示,这样在移走工具条时仍有立体感。<br>   18):菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。<br>   19):右键快捷菜单采用与菜单相同的准则。<br>   3:帮助设施:<br>   系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。<br>   帮助设施细则:<br>   1):帮助文档中的性能介绍与说明要与系统性能配套一致。(我们的系统帮助文档都是系统的祖先时期的说明,让人困惑)。<br>   2):打包新系统时,对作了修改的地方在帮助文档中要做相应的修改。<br>   3):操作时要提供及时调用系统帮助的功能。常用F1。<br>   4):在界面上调用帮助时应该能够及时定位到与该操作相对的帮助位置。也就是说帮助要有即时针对性。<br>   5):最好提供目前流行的联机帮助格式或HTML帮助格式。<br>   6):用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词。<br>   7):如果没有提供书面的帮助文档的话,最好有打印帮助的功能。<br>   8 ):在帮助中应该提供我们的技术支持方式,一旦用户难以自己解决可以方便的寻求新的帮助方式。<br>   4:合理性:<br>   屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。<br>   合理性细则:<br>   1):父窗体或主窗体的中心位置应该在对角线焦点附近。<br>   2):子窗体位置应该在主窗体的左上角或正中。<br>   3):多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。<br>   4):重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。<br>   5):错误使用容易引起界面退出或关闭的按钮不应该放在易点位置。横排开头或最后与竖排最后为易点位置。<br>   6):与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮)。<br>   7):对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。<br>   8):非法的输入或操作应有足够的提示说明。<br>   9): 对运行过程中出现问题而引起错误的地方要有提示,让用户明白错误出处,避免形成无限期的等待。<br>   10):提示、警告、或错误说明应该清楚、明了、恰当。<br>   5:美观与协调性:<br>   界面应该大小适合美学观点,感觉协调舒适,能在有效的范围内吸引用户的注意力。<br>   美观与协调性细则:<br>   1): 长宽接近黄金点比例,切忌长宽比例失调、或宽度超过长度。<br>   2): 布局要合理,不宜过于密集,也不能过于空旷,合理的利用空间。<br>   3): 按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置。<br>   4): 按钮的大小要与界面的大小和空间要协调。<br>   5): 避免空旷的界面上放置很大的按钮。<br>   6):放置完控件后界面不应有很大的空缺位置。<br>   7): 字体的大小要与界面的大小比例协调, 通常使用的字体中宋体9-12较为美观,很少使用超过12号的字体。<br>   8): 前景与背景色搭配合理协调,反差不宜太大,最好少用深色,如大红、大绿等。常用色考虑使用Windows界面色调。<br>   9): 如果使用其他颜色,主色要柔和,具有亲和力与磁力,坚决杜绝刺目的颜色。<br>   10): 大型系统常用的主色有"#E1E1E1"、"#EFEFEF"、"#C0C0C0"等。<br>   11): 界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。<br>   12): 如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放。<br>   13):对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能。<br>   14): 通常父窗体支持缩放时,子窗体没有必要缩放。<br>   15):如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。<br>   6:菜单位置:<br>   菜单是界面上最重要的元素,菜单位置按照按功能来组织。<br>   菜单设测试细则:<br>   1):菜单通常采用“常用--主要--次要--工具--帮助”的位置排列,符合流行的Windows风格。<br>   2):常用的有“文件”、“编辑”,“查看”等,几乎每个系统都有这些选项,当然要根据不同的系统有所取舍。<br>   3):下拉菜单要根据菜单选项的含义进行分组,并切按照一定的规则进行排列,用横线隔开。<br>   4): 一组菜单的使用有先后要求或有向导作用时,应该按先后次序排列。<br>   5): 没有顺序要求的菜单项按使用频率和重要性排列,常用的放在开头, 不常用的靠后放置;重要的放在开头,次要的放在后边。<br>   6): 如果菜单选项较多,应该采用加长菜单的长度而减少深度的原则排列。<br>   7): 菜单深度一般要求最多控制在三层以内。<br>   8): 对常用的菜单要有快捷命令方式,组合原则见8。<br>   9):对与进行的操作无关的菜单要用屏蔽的方式加以处理,如果采用动态加载方式——即只有需要的菜单才显示——最好。<br>   10):菜单前的图标不宜太大,与字高保持一直最好。<br>   11):主菜单的宽度要接近,字数不应多于四个,每个菜单的字数能相同最好。<br>   12):主菜单数目不应太多,最好为单排布置。</p> <p>7:独特性:<br>   如果一味的遵循业界的界面标准,则会丧失自己的个性.在框架符合以上规范的情况下,设计具有自己独特风格的界面尤为重要。尤其在商业软件流通中有着很好的迁移默化的广告效用。<br>   1):安装界面上应有单位介绍或产品介绍,并有自己的图标。<br>   2):主界面,最好是大多数界面上要有公司图标。<br>   3):登录界面上要有本产品的标志,同时包含公司图标。<br>   4):帮助菜单的“关于”中应有版权和产品信息。<br>   5):公司的系列产品要保持一直的界面风格,如背景色、字体、菜单排列方式、图标、安装过程、按钮用语等应该大体一致。<br>   8:快捷方式的组合<br>   在菜单及按钮中使用快捷键可以让喜欢使用键盘的用户操作得更快一些 在西文Windows及其应用软件中快捷键的使用大多是一致的。<br>   菜单中:<br>   1):面向事务的组合有:<br>   Ctrl-D 删除 ;Ctrl-F 寻找 ;Ctrl –H替换;Ctrl-I 插入 ;Ctrl-N 新记录 ;Ctrl-S 保存 Ctrl-O 打开。<br>   2):列表:<br>   Ctrl-R ,Ctrl-G定位;Ctrl-Tab下一分页窗口或反序浏览同一页面控件;。<br>   3):编辑:<br>   Ctrl-A全选;Ctrl-C 拷贝;Ctrl-V 粘贴;Ctrl-X 剪切;Ctrl-Z撤消操作;Ctrl-Y恢复操作。<br>   4)文件操作:<br>   Ctrl-P 打印;Ctrl-W 关闭。<br>   5):系统菜单<br>   Alt-A文件;Alt-E编辑;Alt-T工具;Alt-W窗口;Alt-H帮助。<br>   6):MS Windows保留键:<br>   Ctrl-Esc 任务列表 ;Ctrl-F4 关闭窗口; Alt-F4 结束应用;Alt-Tab 下一应用 ;Enter 缺省按钮/确认操作 ;Esc 取消按钮/取消操作 ;Shift-F1 上下文相关帮助 。<br>   按钮中:<br>   可以根据系统需要而调节,以下只是常用的组合。<br>   Alt-Y确定(是);Alt-C取消;Alt-N 否;Alt-D删除;Alt-Q退出;Alt-A添加;Alt-E编辑;Alt-B浏览;Alt-R读;Alt-W写。<br>   这些快捷键也可以作为开发中文应用软件的标准,但亦可使用汉语拼音的开头字母。<br>   9:安全性考虑:<br>   在界面上通过下列方式来控制出错几率,会大大减少系统因用户人为的错误引起的破坏。开发者应当尽量周全地考虑到各种可能发生的问题,使出错的可能降至最小。如应用出现保护性错误而退出系统,这种错误最容易使用户对软件失去信心。因为这意味着用户要中断思路,并费时费力地重新登录,而且已进行的操作也会因没有存盘而全部丢失。<br>   安全性细则:<br>   1):最重要的是排除可能会使应用非正常中止的错误。<br>   2):应当注意尽可能避免用户无意录入无效的数据。<br>   3):采用相关控件限制用户输入值的种类。<br>   4):当用户作出选择的可能性只有两个时,可以采用单选框。<br>   5):当选择的可能再多一些时,可以采用复选框,每一种选择都是有效的,用户不可能输入任何一种无效的选择。<br>   6):当选项特别多时,可以采用列表框,下拉式列表框。<br>   7):在一个应用系统中,开发者应当避免用户作出未经授权或没有意义的操作。<br>   8):对可能引起致命错误或系统出错的输入字符或动作要加限制或屏蔽。<br>   9):对可能发生严重后果的操作要有补救措施。通过补救措施用户可以回到原来的正确状态。<br>   10):对一些特殊符号的输入、与系统使用的符号相冲突的字符等进行判断并阻止用户输入该字符。<br>   11):对错误操作最好支持可逆性处理,如取消系列操作。<br>   12):在输入有效性字符之前应该阻止用户进行只有输入之后才可进行的操作。<br>   13):对可能造成等待时间较长的操作应该提供取消功能。<br>   14):特殊字符常有;;’”><,`‘:“[”{、/|}]+=)-(_*&&^%$#@!~,.。?/还有空格。<br>   15):与系统采用的保留字符冲突的要加以限制。<br>   16):在读入用户所输入的信息时,根据需要选择是否去掉前后空格。<br>   17):有些读入数据库的字段不支持中间有空格,但用户切实需要输入中间空格,这时要在程序中加以处理。<br>   10:多窗口的应用与系统资源:<br>   设计良好的软件不仅要有完备的功能,而且要尽可能的占用最底限度的资源。<br>   1): 在多窗口系统中,有些界面要求必须保持在最顶层,避免用户在打开多个窗口时,不停的切换甚至最小化其他窗口来显示该窗口。<br>   2):在主界面载入完毕后自动卸出内存,让出所占用的WINDOWS系统资源。<br>   3):关闭所有窗体,系统退出后要释放所占的所有系统资源 ,除非是需要后台运行的系统。<br>   4):尽量防止对系统的独占使用。<br>   1.输入验证 输入验证主要包括:数字输入验证、非法字符输入验证、输入长度验证、必填项验证和信息提示 1.数字输入验证:分别输入数字(正数、负数、零值、单精度、双精度)、字符串、空白值、空值、临界数值。不合法的输入,系统给出必要的判断提示信息<br>   2.字符输入验证:分别输入单字节字符、双字节字符、大小写字符、特殊字符、空白值、空值。不合法的输入,系统给出必要的判断提示信息<br>   3.日期、时间输入验证:分别输入任意字符、任意数字、非日期格式的数据、非正确日期(错误的闰年日期)、空值、空白值。不合法的输入,系统给出必要的判断提示信息。注:有些系统会不让输入当日以后或者以前的日期、时间;有些系统会通过JavaScript来自动填写日期时间,这时需要注意是否能否人工主观填写输入<br>   4.多列表选择框:测试是否能否多选,列表框中的数据是否能否显示完全。当列表框的数据过多时,需要对数据有一定格式的排序<br>   5.单列表下拉框:测试是否能否手工输入,下拉框中的数据是否能否显示完整。当下拉框的数据很多时,需要对数据有一定格式的排序。如果下拉框数据值过多时,下拉框可能会超出IE显示范围,此种情况不能够被接收<br>   6.大文本输入框(textArea):虽然它能够满足大数据量的输入,但最好能够显示地标明输入字符的长度限制,并且应该结合“字符输入验证”进行。需要注意的是,应该允许标点的存在<br>   7.文件输入框输入验证:该输入框主要用做文件上传操作。在测试过程中,应该注意输入文件的扩展名。从测试角度来看,要求开发人员必须对扩展名进行输入限制,并且在适当的地方输入格式提示。当输入是空值等不合法的输入时,系统给出必要的判断提示信息。另外,对于上传的文件大小应该做限制,不宜太大<br>   8.输入字符长度验证:输入字符的长度是否超过实际系统接收字符长度的能力。当输入超出长度时,系统给出必要的判断提示信息<br>   9.必填项验证:输入不允许为空的时候,系统需要有提示用户输入信息功能<br>   10.格式、规则输入验证:当输入需要一定的格式时,系统需要有提示用户输入信息功能。比如身份证号码可以输入18位或者15位,部分身份证最后一位为字母,身份证上生日与身份证号码有一定规则。</p> <p>11.系统错误定位的输入验证:当输入存在问题时,被系统捕获到,此时页面上的光标能够定位到发生错误的输入框<br>   12.单选框、多选框的输入验证:单选框需要依次验证单选框的值是否都有效;多选框需要依次验证多选框的值是否都有效 13.验证码验证:做验证码输入验证时,先结合“字符输入验证”进行测试,然后注意的地方是,当利用IE回退或者刷新时,显示的验证码应该和实际系统验证码一致。如果验证码以图片形式显示,但图片由于其他原因(如网络)不能看到或者显示不完整,系统应该允许进行重新获取,最好不要做整个页面刷新 2.操作验证(CZ) 该用例库主要针对页面操作<br>   1.页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确<br>   2.相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确<br>   3.检查按钮的功能是否正确:如增、删、改、查等功能是否正确<br>   4.重复提交表单:一条已经成功提交的记录,用IE回退后再提交,看看系统是否做了处理<br>   5.多次IE回退:检查多次使用IE回退的情况,在有回退的地方,回退,回到原来页面,再回退,重复多次,看是否出错<br>   6.快捷键检查:是否支持常用快捷键,如Ctrl+C、Ctrl+V、Backspace等,对一些不允许输入信息的字段,如选人、选日期对快捷方式是否也做了限制<br>   7.回车键检查:在输入结束后直接回车键,看系统处理如何,能否报错<br>   8.上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开,对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能否做到<br>   9.其他验证:在页面上图片的大小不宜太大,需要第三方软件支持时,应该给出必要的信息,比如需要jre的支持,但用户机器还没有安装jre,那么此时在页面上应该有显著的标志来提醒用户进行安装<br>   3.登录模块测试用例 该用例库主要针对登录模块。需要结合“访问控制验证(FWKZYZ)”用例库 1.登录名输入:进行“输入验证”。需要注意登录名是否区分大小写和空格<br>   2.密码输入:进行“输入验证”<br>   3.提交操作:结合“访问空值验证(FWKZYZ)”。当输入正确的登录名和密码后,该用户能够进入到指定的正确页面。当输入的登录名和密码有误时,系统限制其登录,并且给出适当的提示信息。当遇到错误时,应该进行“错误页面测试”<br>   4.重设操作:当进行重设操作时,当前页面上所有输入项被清空<br>   4.增加操作测试用例(ZJ) 该用例库主要针对增加操作<br>   1.添加输入内容,进行“输入验证” 2.应该限制重复增加,具体操作:利用网络传输以及服务器的延迟,多次单击“增加”按钮,经常在数据库发现重复提交的数据 3.当增加成功或者失败后,应该有必要的信息提示 4.文件数据的增加:有些增加包含了数据库数据的增加,和一些文件的增加,此时的数据会保存在两个地方,所以测试时,需要对相关的数据做全面的验证 5.文件数据验证:进行“输入验证”值“文件输入框输入验证”。注意:当上传的文件为中文文件名时,上传到服务器后,可能会出现乱码现象。现在一般的做法是将原文件名替换成字母和数字的组合,以克服汉字文件名的弊端,另外,可以增加文件的安全性 5.删除操作测试用例(SC) 该用例库主要针对删除操作<br>   1.选择需要删除的数据字段。有时候系统会根据ID来删除,有时候系统会根据名称来删除,测试的时候应该多注意,一般要求按照ID来删除,因为根据名称来删除,名称可能会存在重名问题 2.应该限制重复删除。具体操作:利用网络传输以及服务器的延迟,多次单击“删除”按钮,经常在数据库中发现重复提交的数据 3.当删除的数据还有文件时,西药去验证存在数据库中的数据,以及硬盘下的文件是否都被同时删除 4.当数据被删除成功或者失败后,要有响应的信息提示 5.进行“操作验证” 6.修改操作测试用例(XG) 该用例库主要针对修改操作<br>   1.打开需要修改的数据页面,注意与增加页面相比,只能修改部分数值,例如关键字等是不能被修改的,并且二者数据应该是一致的 2.增加页面上的输入限制与修改页面的输入限制应该一致 3.修改成功或者失败后,应该有相应的信息提示 7.查询操作测试用例(CX) 该用例库主要针对查询操作<br>   1.条件输入查询,先进行条件输入框的“输入验证” 2.条件组合查询,将多个条件进行组合查询,结果可以通过数据库验证。需要注意的是,整个数据查询和条件查询数据结果条数要一致,另外,如果遇到某天的查询时间段,有的数据库认为一天不包括零点零分,有的数据库认为包括 3.所有查询结果,必须进行一定顺序的排列,可以按照ID或按照名称来排列 4.当查询成功或者失败后,系统应给出必要的信息提示<br>   8.翻页操作测试用例(FY) 该用例库主要针对翻页操作<br>   1.当数据量很大的时候,需要进行分页显示,每页显示的行数最好不要超过20行,每页列表上最好有序号标识,行与行之间颜色要有一定区分,这样有利于用户的查找<br>   2.翻页按钮应该包括:首页、前一页、后一页、尾页、当前X页、共X页,这些常用按钮和显示,并且按钮都能正常翻页<br>   3.翻页按钮的每页显示的数据要准确,确保没有查不出来的数据,最好的做法就是和数据库结合起来验证<br>   4.页面太多,翻页数据不能全部显示时,系统应该有完善的应对机制,比如值显示当前页的前三页和该页的后三页的页数码 5.当翻到某页时,系统应该有明显的标识,标出该页面所处的页码<br>   9.错误页面测试(CW) 错误页面是在遇到系统异常的情况产生的友好界面<br>   1.当系统遇到致命错误时,不能将服务器的调试信息出现在页面上,因为这样做会带来不安全,应该给出一个合适的提示信息</p> <p>  2.由于系统繁忙,无法及时给出正确信息时,系统可以给出友好的错误页面,如:“请用户稍后再试”等提示信息</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1712211131336044544"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(测试用例设计模板,用例,测试)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1892448765290278912.htm" title="【Go语言快速上手】第二部分:Go语言进阶之测试与性能优化" target="_blank">【Go语言快速上手】第二部分:Go语言进阶之测试与性能优化</a> <span class="text-muted">卜及中</span> <a class="tag" taget="_blank" href="/search/Golang/1.htm">Golang</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a> <div>文章目录前言:测试和性能优化一、编写单元测试和基准测试1.1单元测试1.1.1示例:编写单元测试1.2基准测试1.2.1示例:编写基准测试二、使用pprof进行性能分析2.1启用pprof2.1.1示例:启用pprof2.2使用pprof工具分析性能2.2.1示例:生成CPU性能报告2.2.2示例:生成内存使用报告2.3分析报告三、代码优化技巧3.1减少内存分配3.1.1示例:重用切片3.2避免锁</div> </li> <li><a href="/article/1892448512965144576.htm" title="壁纸样机神器:快速生成个性化壁纸,提升你的设备颜值" target="_blank">壁纸样机神器:快速生成个性化壁纸,提升你的设备颜值</a> <span class="text-muted">2401_89910411</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在数字化时代,壁纸不仅是设备的装饰,更是个人风格的展示。想要快速制作出精美的壁纸吗?壁纸样机神器来帮你!这款工具集多种功能于一身,让你轻松成为壁纸设计师。一、功能亮点1.一键生成高清壁纸壁纸样机神器支持多种图片格式的上传,无论是你从网上下载的图片,还是自己拍摄的照片,都可以轻松导入。上传后,系统会自动适配高清分辨率,确保壁纸在任何设备上都能完美展示。2.智能模板库平台提供了丰富的模板选择,涵盖从极</div> </li> <li><a href="/article/1892447377365725184.htm" title="从开发到部署,搭建离线私有大模型知识库_离线大模型" target="_blank">从开发到部署,搭建离线私有大模型知识库_离线大模型</a> <span class="text-muted">ai大模型应用开发</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>文末有福利!背景介绍最近一段时间搭建了一套完整的私有大模型知识库,目前完整的服务已经完成测试部署上线。基本之前的实践过程,从工程角度整理技术方案以及中间碰到的一些问题,方便后续对这个方向有需求的研发同学们。为什么做离线私有化部署在大模型火热起来之后,很多企业都有尝试相关服务。但是实际会碰到大模型不了解公司个性化的情况,无法针对公司情况给出个性化回答。因此就出现了针对大模型的知识库,通过提供公司内部</div> </li> <li><a href="/article/1892445861879803904.htm" title="使用 Docker 基本命令创建并发布带有新功能的镜像到阿里云" target="_blank">使用 Docker 基本命令创建并发布带有新功能的镜像到阿里云</a> <span class="text-muted">2021级计算机网络技术2班梁嘉敏</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E4%BA%91/1.htm">阿里云</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a> <div>1.关于Docker镜像1.基础假定您在开发一个网上商城,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问?您要如何确保应用能够在这些环境中运行和</div> </li> <li><a href="/article/1892444343353012224.htm" title="如何安装Hadoop" target="_blank">如何安装Hadoop</a> <span class="text-muted">薇晶晶</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>Hadoop入门(一)——CentOS7下载+VM上安装(手动分区)Hadoop入门(二)——VMware虚拟网络设置+Windows10的IP地址配置+CentOS静态IP设置Hadoop入门(三)——XSHELL7远程访问工具+XFTP7文件传输Hadoop入门(四)——模板虚拟机环境准备Hadoop入门(五)——Hadoop集群搭建-克隆三台虚拟机Hadoop入门(六)——JDK安装Hado</div> </li> <li><a href="/article/1892440556353679360.htm" title="2分钟学会编写maven插件" target="_blank">2分钟学会编写maven插件</a> <span class="text-muted">聪明马的博客</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>什么是Maven插件Maven是Java项目中常用的构建工具,可以自动化构建、测试、打包和发布Java应用程序。Maven插件是Maven的一项重要功能,它可以在Maven构建过程中扩展Maven的功能,实现自定义的构建逻辑。Maven插件可以提供很多不同的功能,例如:生成代码、打包文件、部署应用程序等。插件通常是在Maven构建生命周期中的某个阶段执行,例如:编译、测试、打包、安装和部署。Mav</div> </li> <li><a href="/article/1892439418506113024.htm" title="【登月计划】 DAY2 上期:产品研发与设计验证(1-3)-《煮饭煮到天花板炸穿!你家厨房可能藏着一颗定时炸弹》" target="_blank">【登月计划】 DAY2 上期:产品研发与设计验证(1-3)-《煮饭煮到天花板炸穿!你家厨房可能藏着一颗定时炸弹》</a> <span class="text-muted">泛泛不谈</span> <a class="tag" taget="_blank" href="/search/0-2%E5%B2%81%E6%99%BA%E8%83%BD%E5%88%B6%E9%80%A0%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%90%AF%E8%92%99/1.htm">0-2岁智能制造工程师启蒙</a><a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a><a class="tag" taget="_blank" href="/search/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/1.htm">需求分析</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>目录一、血腥开场:电饭煲变“炸弹”?实验室里的致命疏忽!二、死亡案例:电热水壶漏电杀人!一个螺丝毁掉一个家庭三、段位表:从“菜鸟”到“大神”的6个等级四、产线实战:电热水壶的“保命测试”流程一、血腥开场:电饭煲变“炸弹”?实验室里的致命疏忽!某电饭煲厂商推出“超快煮”功能,本想赢得市场,却引发危机。实验室测试时一切正常,可产品到用户手中却频频炸锅。用户遭遇:李阿姨煮粥时,电饭煲突然炸开,粥喷到天花</div> </li> <li><a href="/article/1892434375757328384.htm" title="【deepseek与chatGPT辩论】辩论题: “人工智能是否应当具备自主决策能力?”" target="_blank">【deepseek与chatGPT辩论】辩论题: “人工智能是否应当具备自主决策能力?”</a> <span class="text-muted">海宁不掉头发</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">软件工程</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a> <div>探讨辩论题这个提案涉及创建一个精确的辩论题目,旨在测试deepseek的应答能力。创建辩论题目提议设计一个辩论题目以测试deepseek的应答能力。希望这个题目具有挑战性并能够测量其回应质量。好的,来一道适合深度学习的辩论题:辩论题:“人工智能是否应当具备自主决策能力?”这个话题涉及到人工智能的发展、伦理以及未来应用,可以从以下几个方面展开辩论:支持方:认为人工智能的自主决策能力能够加速科技进步,</div> </li> <li><a href="/article/1892433617603325952.htm" title="《数组》学习——移除元素" target="_blank">《数组》学习——移除元素</a> <span class="text-muted">小翔很开心</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>移除元素题目:给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。测试用例:示例1:给定nums=[3,2,2,3],val=3,函数应该返回新的长度2,并且nums中的前两个元素均为2。你不需要考虑数组中超出新长度后</div> </li> <li><a href="/article/1892432102394228736.htm" title="#渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞" target="_blank">#渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞</a> <span class="text-muted">独行soc</span> <a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a><a class="tag" taget="_blank" href="/search/%E8%BF%9C%E7%A8%8B%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/1.htm">远程命令执行漏洞</a> <div>免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录一、漏洞概况二、攻击特征三、应急处置方案四、深度防御建议五、后续监测要点六、漏洞POC一、漏洞概况技术原理漏洞存在于T+系统的特定接口组件,攻击者可通过构造恶意HTTP请求绕过身份验证,在</div> </li> <li><a href="/article/1892426670741188608.htm" title="ZT2 小美的因子查询" target="_blank">ZT2 小美的因子查询</a> <span class="text-muted">bingw0114</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>描述          小美对偶数因子很感兴趣,她将进行T次询问,每次都会给出一个正整数x,请你告诉她x是否存在至少一个偶数因子。也就是说x是否存在某个因子[注1]是偶数。          注1:y是x的因子,当且仅当xmody=0。输入描述:          每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤10^5)代表数据组数,每组测试数据描述如下:          在一行</div> </li> <li><a href="/article/1892421754261925888.htm" title="2025年三个月自学手册 网络安全(黑客技术)" target="_blank">2025年三个月自学手册 网络安全(黑客技术)</a> <span class="text-muted">网安kk</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客(网络安全)学习导航</div> </li> <li><a href="/article/1892421376174780416.htm" title="入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】" target="_blank">入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】</a> <span class="text-muted">白帽黑客2659</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E7%A0%81%E5%AD%A6/1.htm">密码学</a> <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网络安全工程师需要学什么?知了堂小编总结出以下要点。网络安全工程师是一个概称,学习的东西很多,具体学什么看自己以后的职业定位。如果你以后想成为安全产品工程师,学的内容侧重点就和渗透测试工程师不一样,如果你想成为安全开发</div> </li> <li><a href="/article/1892417084802002944.htm" title="设计数据密集型应用之数据系统基础知识" target="_blank">设计数据密集型应用之数据系统基础知识</a> <span class="text-muted">xt01234</span> <div>第一章可靠性针对系统的容错设计,提高系统错误的抛出率,而不是忽略它(除了安全这种不可恢复类型的),尽量避免failure硬件错误硬件自身容许设计软件系统的灵活性与弹性。即容许整台机器异常,而不影响系统软件错误影响范围大,连锁反应,排查难。bug,依赖服务错误等避免:考虑全面,全面测试,处理隔离,监控人类错误最小化犯错机会的方式设计系统,全面测试,允许从错误中恢复,监控Scaliability(可扩</div> </li> <li><a href="/article/1892416580906708992.htm" title="事件驱动-事件驱动应用于软件开发" target="_blank">事件驱动-事件驱动应用于软件开发</a> <span class="text-muted">海水天涯</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8/1.htm">事件驱动</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">驱动开发</a> <div>一、前言1.1软件开发概述软件开发是一个涉及计算机科学、工程学、设计和项目管理等领域的广泛概念。它指的是创建、部署和维护软件应用程序或系统的整个过程。这包括从最初的构思和需求分析,到设计、编码、测试、部署,以及后续的维护和更新。在软件开发过程中,通常会遵循一定的方法论或开发模型,如瀑布模型、敏捷开发等,以确保项目能按时、按质完成。软件开发工具如集成开发环境(IDE)、版本控制系统等,也在这个过程中</div> </li> <li><a href="/article/1892404601848655872.htm" title="16、电科院FTU检测标准学习笔记-基本性能2" target="_blank">16、电科院FTU检测标准学习笔记-基本性能2</a> <span class="text-muted">six2me</span> <a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%94%B5%E8%87%AA%E5%8A%A8%E5%8C%96%28FTU%29%E6%B5%8B%E8%AF%95%E7%AC%94%E8%AE%B0/1.htm">配电自动化(FTU)测试笔记</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/FTU/1.htm">FTU</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%94%B5%E6%A3%80%E6%B5%8B/1.htm">配电检测</a> <div>作者简介:本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验————————————————————————————————————目录交流工频电量影响量试验频率带来的影响谐波变化带来的影响不平衡电流对功率的影响三相功率测量元件之间相互作用引起的改变故障电流采集电流过载检测(大电流)状态量输出(遥控)输入SOE分</div> </li> <li><a href="/article/1892398803407925248.htm" title="部署前端项目2" target="_blank">部署前端项目2</a> <span class="text-muted">augenstern416</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>前端项目的部署是将开发完成的前端代码发布到服务器或云平台,使其能够通过互联网访问。以下是前端项目部署的常见步骤和工具:1.准备工作在部署之前,确保项目已经完成以下步骤:代码优化:压缩JavaScript、CSS和图片文件,减少文件体积。环境配置:区分开发环境和生产环境(如API地址、环境变量等)。测试:确保项目在本地测试通过,没有明显Bug。2.部署流程1.构建项目大多数前端项目(如React、V</div> </li> <li><a href="/article/1892383167571095552.htm" title="cmake linux模板 多目录_【转载】CMake 简介和 CMake 模板" target="_blank">cmake linux模板 多目录_【转载】CMake 简介和 CMake 模板</a> <span class="text-muted">weixin_39790738</span> <a class="tag" taget="_blank" href="/search/cmake/1.htm">cmake</a><a class="tag" taget="_blank" href="/search/linux%E6%A8%A1%E6%9D%BF/1.htm">linux模板</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%9B%AE%E5%BD%95/1.htm">多目录</a> <div>如果你用Linux操作系统,使用cmake会简单很多,可以参考一个很好的教程:CMake入门实战|HaHack。如果你用Linux操作系统,而且只是运行一些小程序,可以看看我的另一篇博客:你就编译一个cpp,用CMake还不如用pkg-config呢。但如果你用Windows,很大的可能你会使用图形界面的CMake(cmake-gui.exe)和VisualStudio。本文先简单介绍使用CMak</div> </li> <li><a href="/article/1892382030394617856.htm" title="【pytest】编写自动化测试用例命名规范README" target="_blank">【pytest】编写自动化测试用例命名规范README</a> <span class="text-muted">唐古乌梁海</span> <a class="tag" taget="_blank" href="/search/pytest/1.htm">pytest</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a> <div>API_autoTest项目介绍1.pytest命名规范测试文件:文件名需要以test_开头或者以_test.py结尾。例如,test_login.py、user_management_test.py这样的命名方式,pytest能够自动识别并将其作为测试文件来执行其中的测试用例。测试类:如果在测试文件中定义测试类,类名要以Test开头,并且类名不能包含init方法。classTestCalcula</div> </li> <li><a href="/article/1892375095628853248.htm" title="MXTU MAX 苹果cmsv10模板 仿毒舌自适应主题/短视X体验版完全开源" target="_blank">MXTU MAX 苹果cmsv10模板 仿毒舌自适应主题/短视X体验版完全开源</a> <span class="text-muted">希希分享</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E5%B8%8C%E7%BD%9158soho_cn/1.htm">软希网58soho_cn</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E8%B5%84%E6%BA%90/1.htm">源码资源</a><a class="tag" taget="_blank" href="/search/%E4%BB%BF%E6%AF%92%E8%88%8C%E8%87%AA%E9%80%82%E5%BA%94%E4%B8%BB%E9%A2%98%2F/1.htm">仿毒舌自适应主题/</a> <div>基于MxonePro二开的主题,全开源未加密。MXTUMAX仿毒舌苹果CMS影视自适应主题主题说明:1、将mxtheme目录放置根目录|将mxpro目录放置template文件夹中2、苹果cms后台-系统-网站参数配置-网站模板-选择mxpro模板目录填写html3、网站模板选择好之后一定要先访问前台,然后再进入后台设置4、主题后台地址:MXTUMAX图图主题,/admin.php/admin/m</div> </li> <li><a href="/article/1892374969279639552.htm" title="【面试准备】运维工程师" target="_blank">【面试准备】运维工程师</a> <span class="text-muted">C.尚水.Y</span> <a class="tag" taget="_blank" href="/search/%E6%88%91%E7%9A%84%E9%9D%A2%E8%AF%95%E5%87%86%E5%A4%87/1.htm">我的面试准备</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>面试目标:岗位职责分析:1、IT相关设备、环境、运行状况的采购、安装、维护、保养、检查、IT资产管理;2、防火墙、路由器、网络交换机、VPN、服务器等性能优化,配置修改;3、光纤和ADSL线路的监控、测试、报障;4、ERP账号、文件服务器等软件账号的开放与权限管理、维护;5、邮箱OA服务器、文件服务器、ERP数据库服务器的日常管理、维护;6、公司网络工程的规划、项目实施、技术支持;—对这个运维工程</div> </li> <li><a href="/article/1892370554577547264.htm" title="【python】懒人福利,通过Python的JIRA库操作JIRA,自动批量提交关闭bug,提高效率" target="_blank">【python】懒人福利,通过Python的JIRA库操作JIRA,自动批量提交关闭bug,提高效率</a> <span class="text-muted">bulabula2022</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/CI%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/1.htm">CI持续集成</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/jira/1.htm">jira</a> <div>简介:Jira是目前比较流行的基于Java架构的管理系统(Atlassian公司支持),有开源代码,方便做二次开发(可扩展性)。Jira是一款功能非常强大的管理工具,广泛的用来缺陷跟踪、用例管理、需求收集、任务跟踪、工时管理、项目计划管理等工作领域。python有支持操作Jira的第三方包,方便自定义一些自动化操作。需要安装jira库:pipinstalljiraJira认证fromjiraimp</div> </li> <li><a href="/article/1892369293711044608.htm" title="项目管理新趋势!2024年,Jira与Codes你更倾向谁?" target="_blank">项目管理新趋势!2024年,Jira与Codes你更倾向谁?</a> <span class="text-muted">Codes_AndyLiu</span> <a class="tag" taget="_blank" href="/search/jira/1.htm">jira</a><a class="tag" taget="_blank" href="/search/teambition/1.htm">teambition</a><a class="tag" taget="_blank" href="/search/redmine/1.htm">redmine</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/1.htm">项目管理软件</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/1.htm">项目管理工具</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a><a class="tag" taget="_blank" href="/search/jira/1.htm">jira</a><a class="tag" taget="_blank" href="/search/%E5%9B%BD%E4%BA%A7%E5%B9%B3%E6%9B%BF/1.htm">国产平替</a> <div>一、项目管理软件新趋势概述2024年,项目管理软件呈现出诸多新趋势,这些趋势对于项目管理的重要性日益凸显。在数字化转型方面,项目管理软件成为企业实现数字化转型的关键工具。让老板感知数据,让中层管理者感受先进,让基层员工感到舒心.人工智能与自动化在项目管理软件中的应用也越来越广泛。项目管理软件正朝着智能化、自动化的方向迈进,利用AI技术提供个性化和场景化解决方案。例如,工作周报AI化,自动化测试,代</div> </li> <li><a href="/article/1892365134530146304.htm" title="【python】连接Jira获取token以及jira对象" target="_blank">【python】连接Jira获取token以及jira对象</a> <span class="text-muted">唐古乌梁海</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/jira/1.htm">jira</a> <div>此脚本可以连接Jira,通过Jira的token,Jira对象可以实现与Jira的交互,从而完成jira与pytest的交互,或者其他自动化测试框架也行,例如:将pytest运行结果推送jira;将jira用例与自动化测试用例建立映射关系,将功能用例对应的自动化测试用例脚本路径推送到功能用例的描述栏,或者自动化栏里面#!/usr/bin/envpython#-*-coding:utf-8-*-#@</div> </li> <li><a href="/article/1892362734704586752.htm" title="【人工智能】提升编程效率的6种GPT实用应用技巧!保姆级讲解!" target="_blank">【人工智能】提升编程效率的6种GPT实用应用技巧!保姆级讲解!</a> <span class="text-muted">ChatGPT-千鑫</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/AI%E9%A2%86%E5%9F%9F/1.htm">AI领域</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/gpt/1.htm">gpt</a><a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</a> <div>文章目录实用教程:六大AI编程技巧解锁效率提升技巧1:快速实现需求demo操作步骤技巧2:代码审查——AI帮你提升代码质量操作步骤技巧3:错误排查——AI助你快速定位问题操作步骤技巧4:代码注释——AI帮你理解复杂逻辑操作步骤技巧5:数据整理——AI帮你高效准备测试数据操作步骤技巧6:学习未知代码库——AI助你快速掌握新工具操作步骤使用教程:全面掌握CodeMoss的高效编程工具(1)VSCode</div> </li> <li><a href="/article/1892361849689665536.htm" title="【FastAPI 】FastAPI 模板:提供静态文件" target="_blank">【FastAPI 】FastAPI 模板:提供静态文件</a> <span class="text-muted">iFakeCoder</span> <a class="tag" taget="_blank" href="/search/Flask/1.htm">Flask</a><a class="tag" taget="_blank" href="/search/fastapi/1.htm">fastapi</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>FastAPI是一个现代、快速(高性能)的Web框架,用于基于标准Python类型提示使用Python3.7+构建API。虽然它的主要用例是构建API,但FastAPI还可以轻松提供静态文件和HTML模板,从而让您可以构建全栈Web应用程序。在此博客中,我们将探讨如何使用FastAPI提供静态文件。我们将介绍基础知识并提供演示以帮助您入门。为什么要提供静态文件?静态文件是不经常更改的资产,并按原样</div> </li> <li><a href="/article/1892361597523914752.htm" title="8-项目实战-信用卡数字识别" target="_blank">8-项目实战-信用卡数字识别</a> <span class="text-muted">#北极星star</span> <a class="tag" taget="_blank" href="/search/Opencv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E6%A1%86%E6%9E%B6%E5%AE%9E%E6%88%98/1.htm">Opencv图像处理框架实战</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>目录(1)总体流程与方法(2)代码实现(3)识别结果(1)总体流程与方法①读取模板图像:加载包含数字模板的图像,并提取每个数字的轮廓,将它们作为模板存储。②读取输入图像:加载待识别的信用卡图像,并进行预处理。③提取数字区域:通过一系列图像处理操作(如礼帽操作、梯度计算、闭操作等)提取可能包含数字的区域。④轮廓排序与筛选:找到提取区域的轮廓,并根据轮廓的宽高比和尺寸筛选出符合条件的数字区域。⑤数字识</div> </li> <li><a href="/article/1892359705951531008.htm" title="npm多个registry如果配置,如何管理?工具nrm登场" target="_blank">npm多个registry如果配置,如何管理?工具nrm登场</a> <span class="text-muted">大橙子-</span> <a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>通过工具nrm(NPMregistrymanager)来管理,指令简单,随时切换1.全局安装npmi-gnrm2.查看版本,测试是否下载成功nrm-V3.查看所有源nrmls4.添加源其中:csdn为自定义名称,根据自己情况自定义即可地址:https://************nrmaddcsdnhttps://************5.删除源nrmdelcsdn6.切换源nrmusecsdn</div> </li> <li><a href="/article/1892358319633395712.htm" title="如何更好的设计测试用例?" target="_blank">如何更好的设计测试用例?</a> <span class="text-muted">爱如 少年</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>测试用例设计的最基本要求:覆盖住所要测试的功能。这是再基本不过的要求了,但别看只是简单的一句话,要能够达到切实覆盖全面,需要对被测试产品功能的全面了解、明确测试范围(特别是要明确哪些是不需要测试的)、具备基本的测试技术(如:等价类划分等)等。那么满足了上述这条要求是不是设计出来的测试用例就是好的测试用例了呢?答案:在理论上是,但在实际工程中还远远不是。之所以理论和实际会有这样的差别,是因为在理论上</div> </li> <li><a href="/article/1892355294596493312.htm" title="设计模式-模板方法实现" target="_blank">设计模式-模板方法实现</a> <span class="text-muted">阿绵</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录模式结构模式特点示例代码输出结果关键点解析模式的优缺点使用场景总结模板方法模式(TemplateMethodPattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,而将某些步骤的实现延迟到子类中。通过这种方式,模板方法模式可以让子类在不改变算法结构的情况下,重新定义算法中的某些步骤模式结构模板方法模式的结构包括以下几个关键部分:抽象类(AbstractClass):定义算法的骨</div> </li> <li><a href="/article/118.htm" title="异常的核心类Throwable" target="_blank">异常的核心类Throwable</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81/1.htm">源码</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/1.htm">异常处理</a><a class="tag" taget="_blank" href="/search/exception/1.htm">exception</a> <div>java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy package com.natsu; </div> </li> <li><a href="/article/245.htm" title="mongoDB 游标(cursor) 实现分页 迭代" target="_blank">mongoDB 游标(cursor) 实现分页 迭代</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询      如何声明一个游标        var mycursor = db.user.find({_id:{$lte:5}});       迭代显示游标数</div> </li> <li><a href="/article/372.htm" title="MySQL数据库INNODB 表损坏修复处理过程" target="_blank">MySQL数据库INNODB 表损坏修复处理过程</a> <span class="text-muted">0624chenhong</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -</div> </li> <li><a href="/article/499.htm" title="剖析如何与设计人员沟通" target="_blank">剖析如何与设计人员沟通</a> <span class="text-muted">不懂事的小屁孩</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。 那应该如何与设计人员沟通呢? 我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,</div> </li> <li><a href="/article/626.htm" title="qq空间刷评论工具" target="_blank">qq空间刷评论工具</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div> var a=document.getElementsByClassName('textinput'); var b=[]; for(var m=0;m<a.length;m++){ if(a[m].getAttribute('placeholder')!=null) b.push(a[m]) } var l</div> </li> <li><a href="/article/753.htm" title="S2SH整合之session" target="_blank">S2SH整合之session</a> <span class="text-muted">灵静志远</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>错误信息: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped</div> </li> <li><a href="/article/880.htm" title="xmp标签" target="_blank">xmp标签</a> <span class="text-muted">a-john</span> <a class="tag" taget="_blank" href="/search/%E6%A0%87%E7%AD%BE/1.htm">标签</a> <div>今天在处理数据的显示上遇到一个问题: var html = '<li><div class="pl-nr"><span class="user-name">' + user + '</span>' + text + '</div></li>'; ulComme</div> </li> <li><a href="/article/1007.htm" title="Ajax的常用技巧(2)---实现Web页面中的级联菜单" target="_blank">Ajax的常用技巧(2)---实现Web页面中的级联菜单</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐</div> </li> <li><a href="/article/1134.htm" title="天-安-门,好高" target="_blank">天-安-门,好高</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/%E6%83%85%E6%84%9F/1.htm">情感</a> <div>    我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。     晚上躺在床上一个人想了很久,很久。        我生在农</div> </li> <li><a href="/article/1261.htm" title="android 动画" target="_blank">android 动画</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E9%80%8F%E6%98%8E%E5%BA%A6/1.htm">透明度</a><a class="tag" taget="_blank" href="/search/%E5%B9%B3%E7%A7%BB/1.htm">平移</a><a class="tag" taget="_blank" href="/search/%E7%BC%A9%E6%94%BE/1.htm">缩放</a><a class="tag" taget="_blank" href="/search/%E6%97%8B%E8%BD%AC/1.htm">旋转</a> <div>android的动画有两种  tween动画和Frame动画   tween动画;,透明度,缩放,旋转,平移效果   Animation   动画 AlphaAnimation 渐变透明度 RotateAnimation 画面旋转 ScaleAnimation 渐变尺寸缩放 TranslateAnimation 位置移动 Animation</div> </li> <li><a href="/article/1388.htm" title="查看本机网络信息的cmd脚本" target="_blank">查看本机网络信息的cmd脚本</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/cmd/1.htm">cmd</a> <div>@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt" @echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt" @echo ___________________>>"%userprofile%\</div> </li> <li><a href="/article/1515.htm" title="plsql 清除登录过的用户" target="_blank">plsql 清除登录过的用户</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>tools---preferences----logon history---history  把你想要删除的删除 -------------------------------------------------------------------- 若有其他凝问或文中有错误,请及时向我指出, 我好及时改正,同时也让我们一起进步。 email : binary_spac</div> </li> <li><a href="/article/1642.htm" title="【Pig一】Pig入门" target="_blank">【Pig一】Pig入门</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/pig/1.htm">pig</a> <div>Pig安装 1.下载pig   wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz   2. 解压配置环境变量      如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量   expor</div> </li> <li><a href="/article/1769.htm" title="Java 线程同步几种方式" target="_blank">Java 线程同步几种方式</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/volatile/1.htm">volatile</a><a class="tag" taget="_blank" href="/search/synchronized/1.htm">synchronized</a><a class="tag" taget="_blank" href="/search/ThredLocal/1.htm">ThredLocal</a><a class="tag" taget="_blank" href="/search/ReenTranLock/1.htm">ReenTranLock</a><a class="tag" taget="_blank" href="/search/Concurrent/1.htm">Concurrent</a> <div>为何要使用同步?      java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),      将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,      从而保证了该变量的唯一性和准确性。 1.同步方法&</div> </li> <li><a href="/article/1896.htm" title="StringUtils判断字符串是否为空的方法(转帖)" target="_blank">StringUtils判断字符串是否为空的方法(转帖)</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/null/1.htm">null</a><a class="tag" taget="_blank" href="/search/StringUtils/1.htm">StringUtils</a><a class="tag" taget="_blank" href="/search/%E2%80%9C%E2%80%9D/1.htm">“”</a> <div>转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html   public static boolean isEmpty(String str)     判断某字符串是否为空,为空的标准是 str== null  或 str.length()== 0  </div> </li> <li><a href="/article/2023.htm" title="编程之美-分层遍历二叉树" target="_blank">编程之美-分层遍历二叉树</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div> import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class LevelTraverseBinaryTree { /** * 编程之美 分层遍历二叉树 * 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要</div> </li> <li><a href="/article/2150.htm" title="jquery取值和ajax提交复习记录" target="_blank">jquery取值和ajax提交复习记录</a> <span class="text-muted">chengxuyuancsdn</span> <a class="tag" taget="_blank" href="/search/jquery%E5%8F%96%E5%80%BC/1.htm">jquery取值</a><a class="tag" taget="_blank" href="/search/ajax%E6%8F%90%E4%BA%A4/1.htm">ajax提交</a> <div> // 取值 // alert($("input[name='username']").val()); // alert($("input[name='password']").val()); // alert($("input[name='sex']:checked").val()); // alert($("</div> </li> <li><a href="/article/2277.htm" title="推荐国产工作流引擎嵌入式公式语法解析器-IK Expression" target="_blank">推荐国产工作流引擎嵌入式公式语法解析器-IK Expression</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a> <div>这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。 ----------转帖--------------------------------------------------- IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言</div> </li> <li><a href="/article/2404.htm" title="关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer" target="_blank">关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>1、PropertyPlaceholderConfigurer Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。 基本的使用方法是:(1) <bean id="propertyConfigurerForWZ&q</div> </li> <li><a href="/article/2531.htm" title="二叉树:二叉搜索树" target="_blank">二叉树:二叉搜索树</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%8F%89%E6%A0%91/1.htm">二叉树</a> <div>    所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表. tree代码: </div> </li> <li><a href="/article/2658.htm" title="C语言字符串函数大全" target="_blank">C语言字符串函数大全</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/function/1.htm">function</a> <div>C语言字符串函数大全     函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例:   #include <stdio.h> #include <string.h>   int main</div> </li> <li><a href="/article/2785.htm" title="友盟统计页面技巧" target="_blank">友盟统计页面技巧</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E5%B7%A7/1.htm">技巧</a> <div>在基类调用就可以了, 基类ViewController示例代码 -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]]; </div> </li> <li><a href="/article/2912.htm" title="window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法" target="_blank">window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法</a> <span class="text-muted">flyvszhb</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a> <div>window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装jdk1.6前,执行java -version得到 C:\Users\liuxiang2>java -version java version "1.7.0_21&quo</div> </li> <li><a href="/article/3039.htm" title="Java在创建子类对象的同时会不会创建父类对象" target="_blank">Java在创建子类对象的同时会不会创建父类对象</a> <span class="text-muted">happyqing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%88%9B%E5%BB%BA/1.htm">创建</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E7%B1%BB%E5%AF%B9%E8%B1%A1/1.htm">子类对象</a><a class="tag" taget="_blank" href="/search/%E7%88%B6%E7%B1%BB%E5%AF%B9%E8%B1%A1/1.htm">父类对象</a> <div>  1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,   2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam</div> </li> <li><a href="/article/3166.htm" title="跟我学spring3 目录贴及电子书下载" target="_blank">跟我学spring3 目录贴及电子书下载</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>    一、《跟我学spring3》电子书下载地址: 《跟我学spring3》  (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf     跟我学spring3系列 word原版 下载     二、 源代码下载 最新依</div> </li> <li><a href="/article/3420.htm" title="第12章 Ajax(上)" target="_blank">第12章 Ajax(上)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3547.htm" title="BI and EIM 4.0 at a glance" target="_blank">BI and EIM 4.0 at a glance</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://www.sap.com/corporate-en/press.epx?PressID=14787   有机会研究下EIM家族的两个新产品~~~~   New features of the 4.0 releases of BI and EIM solutions include: Real-time in-memory computing – </div> </li> <li><a href="/article/3674.htm" title="Java线程中yield与join方法的区别" target="_blank">Java线程中yield与join方法的区别</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。 &nb</div> </li> <li><a href="/article/3801.htm" title="android Manifest.xml选项" target="_blank">android Manifest.xml选项</a> <span class="text-muted">阿尔萨斯</span> <a class="tag" taget="_blank" href="/search/Manifest/1.htm">Manifest</a> <div>结构 继承关系 public final class Manifest extends Objectjava.lang.Objectandroid.Manifest 内部类 class Manifest.permission权限 class Manifest.permission_group权限组 构造函数 public Manifest () 详细 androi</div> </li> <li><a href="/article/3928.htm" title="Oracle实现类split函数的方" target="_blank">Oracle实现类split函数的方</a> <span class="text-muted">zhaoshijie</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>关键字:Oracle实现类split函数的方 项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。 CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100); cr</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>