WEB全面测试方法汇总

WEB功能测试方法

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:

  1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。

  2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。

  3. 检查按钮的功能是否正确:如update, cancel, delete, save等功能是否正确。

  4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.

  5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.

  6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.

  7. 中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.

  8. 检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致

  9. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.

  10. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.

  11. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.

  12. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.

  13. 重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。

  14. 检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.

  15. search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.

  16. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.

  17. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。

  18. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*

  19. 快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。

  20. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错.

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

图形测试

1、在 Web 应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个 Web 应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:

   (1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。 Web 应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。

   (2)验证所有页面字体的风格是否一致。

   (3) 背景颜色应该与字体颜色和前景颜色相搭配。

   (4)图片的大小和质量也是一个很重要的因素,一般采用 JPG 或 GIF 压缩。

2、内容测试

信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。

这种测试通常使用一些文字处理软件来进行,例如使用 Microsoft Word 的 " 拼音与语法检查 " 功能;

信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般 Web 站点中的所谓 " 相关文章列表 " 。

3、整体界面测试

整体界面是指整个 Web 应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览 Web 应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?

整个 Web 应用系统的设计风格是否一致?对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般 Web 应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。

对所有的可用性测试来说,都需要有外部人员(与 Web 应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。

客户端兼容性测试

4.1.平台测试

  市场上有很多不同的操作系统类型,最常见的有 Windows 、 Unix 、 Macintosh 、 Linux 等。 Web 应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,

就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。因此,在 Web 系统发布之前,需要在各种操作系统下对 Web 系统进行兼容性测试。

4.2.浏览器测试

浏览器是 Web 客户端最核心的构件,来自不同厂商的浏览器对 Java ,、 Javascrīpt 、 ActiveX 、 plug-ins 或不同的 HTML 规格有不同的支持。例如, ActiveX 是 Microsoft 的产品,是为 Internet Explorer 而设计的, Javascrīpt 是 Netscape 的产品, Java 是 Sun 的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和 Java 的设置也不一样。

测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

4.3 分辨率测试

页面版式在 640x400、600x800 或 1024x768 的分辨率模式下是否显示正常? 字体是否太小以至于无法浏览? 或者是太大? 文本和图片是否对齐?

4.4 Modem/连接速率

是否有这种情况,用户使用 28.8 modem下载一个页面需要 10 分钟,但测试人员在测试的时候使用的是 T1 专线? 用户在下载文章或演示的时候,可能会等待比较长的时间,但却不会耐心等待首页的出现。最后,需要确认图片不会太大。

4.5 打印机

用户可能会将网页打印下来。因此网也在设计的时候要考虑到打印问题,注意节约纸张和油墨。有不少用户喜欢阅读而不是盯着屏幕,因此需要验证网页打印是否正常。有时在屏幕上显示的图片和文本的对齐方式可能与打印出来的东西不一样。测试人员至少需要验证订单确认页面打印是正常的。

4.6 组合测试

最后需要进行组合测试。600x800 的分辨率在 MAC 机上可能不错,但是在 IBM 兼容机上却很难看。在 IBM 机器上使用 Netscape 能正常显示,但却无法使用 Lynx 来浏览。如果是内部使用的 web 站点,测试可能会轻松一些。如果公司指定使用某个类型的浏览器,那么只需在该浏览器上进行测试。如果所有的人都使用 T1 专线,可能不需要测试下载施加。(但需要注意的是,可能会有员工从家里拨号进入系统) 有些内部应用程序,开发部门可能在系统需求中声明不支持某些系统而只支持一些那些已设置的系统。但是,理想的情况是,系统能在所有机器上运行,这样就不会限制将来的发展和变动。

采取措施:根据实际情况,采取等价划分的方法,列出兼容性矩阵

安全性测试

Web 应用系统的安全性测试区域主要有:

   ( 1 )现在的 Web 应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。

   ( 2 ) Web 应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如 15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

   ( 3 )为了保证 Web 应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。

   ( 4 )当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。

   ( 5 )服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于 Web 的系统测试方法。

接口测试

在很多情况下,web 站点不是孤立。Web 站点可能会与外部服务器通讯,请求数据、验证数据或提交订单。

6.1服务器接口

第一个需要测试的接口是浏览器与服务器的接口。测试人员提交事务,然后查看服务器记录,并验证在浏览器上看到的正好是服务器上发生的。测试人员还可以查询数据库,确认事务数据已正确保存。

这种测试可以归到功能测试中的表单测试和数据校验测试中

6.2 外部接口

有些 web 系统有外部接口。例如,网上商店可能要实时验证信用卡数据以减少欺诈行为的发生。测试的时候,要使用 web 接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证。如果商店只使用 Visa 卡和 Mastercard 卡, 可以尝试使用 Discover 卡的数据。(简单的客户端脚本能够在提交事务之前对代码进行识别,例如 3 表示 American Express,4 表示 Visa,5 表示 Mastercard,6 代表Discover。)通常,测试人员需要确认软件能够处理外部服务器返回的所有可能的消息。

这种情况在远程抄表中可能会体现到

6.3 错误处理

最容易被测试人员忽略的地方是接口错误处理。通常我们试图确认系统能够处理所有错误,但却无法预期系统所有可能的错误。尝试在处理过程中中断事务,看看会发生什么情况?订单是否完成?尝试中断用户到服务器的网络连接。尝试中断 web 服务器到信用卡验证服务器的连接。在这些情况下,系统能否正确处理这些错误?是否已对信用卡进行收费?如果用户自己中断事务处理,在订单已保存而用户没有返回网站确认的时候,需要由客户代表致电用户进行订单确认。

采取措施:在理解需求的基础上,充分发挥想象力,尽量比较全面的列出各种异常情况

常见的Web应用安全漏洞

已知弱点和错误配置

  已知弱点包括Web应用使用的操作系统和第三方应用程序中的所有程序错误或者可以被利用的漏洞。这个问题也涉及到错误配置,包含有不安全的默认设置或管理员没有进行安全配置的应用程序。一个很好的例子就是你的Web服务器被配置成可以让任何用户从系统上的任何目录路径通过,这样可能会导致泄露存储在Web服务器上的一些敏感信息,如口令、源代码或客户信息等。

隐藏字段

  在许多应用中,隐藏的HTML格式字段被用来保存系统口令或商品价格。尽管其名称如此,但这些字段并不是很隐蔽的,任何在网页上执行“查看源代码”的人都能看见。许多Web应用允许恶意的用户修改HTML源文件中的这些字段,为他们提供了以极小成本或无需成本购买商品的机会。这些攻击行动之所以成功,是因为大多数应用没有对返回网页进行验证;相反,它们认为输入数据和输出数据是一样的。

后门和调试漏洞

开发人员常常建立一些后门并依靠调试来排除应用程序的故障。在开发过程中这样做可以,但这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就可以登录或者访问允许直接进行应用配置的特殊URL。

跨站点脚本编写

  一般来说,跨站点编写脚本是将代码插入由另一个源发送的网页之中的过程。利用跨站点编写脚本的一种方式是通过HTML格式,将信息帖到公告牌上就是跨站点脚本编写的一个很好范例。恶意的用户会在公告牌上帖上包含有恶意的Javascrīpt代码的信息。当用户查看这个公告牌时,服务器就会发送HTML与这个恶意的用户代码一起显示。客户端的浏览器会执行该代码,因为它认为这是来自Web服务器的有效代码。

参数篡改

  参数篡改包括操纵URL字符串,以检索用户以其他方式得不到的信息。访问Web应用的后端数据库是通过常常包含在URL中的SQL调用来进行的。恶意的用户可以操纵SQL代码,以便将来有可能检索一份包含所有用户、口令、信用卡号的清单或者储存在数据库中的任何其他数据。

更改cookie

  更改cookie指的是修改存储在cookie中的数据。网站常常将一些包括用户ID、口令、帐号等的cookie存储到用户系统上。通过改变这些值,恶意的用户就可以访问不属于他们的帐户。攻击者也可以窃取用户的cookie并访问用户的帐户,而不必输入ID和口令或进行其他验证。

输入信息控制

  输入信息检查包括能够通过控制由CGI脚本处理的HTML格式中的输入信息来运行系统命令。例如,使用CGI脚本向另一个用户发送信息的形式可以被攻击者控制来将服务器的口令文件邮寄给恶意的用户或者删除系统上的所有文件。

缓冲区溢出

  缓冲区溢出是恶意的用户向服务器发送大量数据以使系统瘫痪的典型攻击手段。该系统包括存储这些数据的预置缓冲区。如果所收到的数据量大于缓冲区,则部分数据就会溢出到堆栈中。如果这些数据是代码,系统随后就会执行溢出到堆栈上的任何代码。Web应用缓冲区溢出攻击的典型例子也涉及到HTML文件。如果HTML文件上的一个字段中的数据足够的大,它就能创造一个缓冲器溢出条件。

直接访问浏览

  直接访问浏览指直接访问应该需要验证的网页。没有正确配置的Web应用程序可以让恶意的用户直接访问包括有敏感信息的URL或者使提供收费网页的公司丧失收入。

Web应用安全两步走

  Web应用攻击能够给企业的财产、资源和声誉造成重大破坏。虽然Web应用增加了企业受攻击的危险,但有许多方法可以帮助减轻这一危险。首先,必须教育开发人员了解安全编码方法。仅此项步骤就会消除大部分Web应用的安全问题。其次,坚持跟上所有厂商的最新安全补丁程序。如果不对已知的缺陷进行修补,和特洛伊木马一样,攻击者就能很容易地利用你的Web应用程序穿过防火墙访问Web服务器、数据库服务器、应用服务器等等。将这两项步骤结合起来,就会大大减少Web应用受到攻击的风险。同时管理人员必须采取严格措施,以保证不让任何东西从这些中溜过去

可用性测试

可用性测试估计是提的比较多的吧。我记得以前看过一本书叫《Don't let me think》。里面就是讲述了一些提高可用性的方法还有设计原则之类的。《软件测试》这本书提到了10个最容易犯错点:

1.Gratuitous Use of Bleeding-Edge Technology-滥用先进技术,其实做IT这个大家都知道技术更新的很快,但是一般商用的软件都不会选择最新版本或者最前沿的技术,就好像JAVA都出到1.6了但是很多开发团队还是在用1.4。稳定压倒一切啊。

2.Scrolling Text, Marquees, and Constantly Running Animations-不要搞的整个页面动来动去的,因为用户看的是内容,看的是内容是否有价值,而不是花里胡哨的飘来飘去的文字。

3.Long Scrolling Pages-一个页面拉啊拉~拉半天都不到底。

4.Non-Standard Link Colors-前面都说过了,标准是要去跟的,不要随便改动,就好像一般链接是蓝色的那么就蓝色吧,特别大的标题做成红色是合理的,什么不好的事情做成黑的也是合理的,但是如果出现绿色di……那么就好像有点不合理哦。

5.Outdated Information-过时的内容,这个有可能出现在邮件地址,电话号码的地方。

6.Overly Long Download Times-过长的下载时间,一般用户的忍耐性都是有限,而且现在SB电信搞什么包月改为240小时,时间就是金钱啊。估计没人喜欢看着浏览器的进度栏干瞪眼。

7.Lack of Navigation Support-缺乏导航支持。有些页面有进没有出,或者不能方便的返回上层页面。

8.Orphan Pages-孤立的页面。没法进,万一不幸进了还没法出。

9.Complex Website Addresses (URLs)-这个要看当时注册了个啥域名了。。。

10.Using Frames-框架的确受人鄙视,不过不知道为什么哦,RationalClearQuest就用的Frame。

排错是一个相当艰苦的过程,究其原因除了开发人员心理方面的障碍外,还因为隐藏在程序中的错误具有下列特殊的性质:

  (1)错误的外部征兆远离引起错误的内部原因,对于高度耦合的程序结构此类现象更为严重;

  (2)纠正一个错误造成了另一错误现象(暂时)的消失;

  (3)某些错误征兆只是假象;

  (4)因操作人员一时疏忽造成的某些错误征兆不易追踪;

  (5)错误是由于风时而不是程序引起的;

  (6)输入条件难以精确地再构造(例如,某些实时应用的输入次序不确定);

  (7)错误征兆时有时无,此现象对嵌入式系统尤其普遍;

  (8)错误是由于把任务分布在若干台不同处理机上运行而造的。

  在软件排错过程中,可能遇到大大小小、形形色色的问题,随着问题的增多,排错人员的压力也随之增大,过分地紧张致使开发人员在排除一个问题的同时又引入更多的新问题。

前面多次提到,修改一处老问题可能引入几处新问题,有时程序越改越乱,但若能做到每次纠错前都扪心自问三个问题,情况将大为改观:

  ①导致这个错误的原因在程序其他部分还可能存在吗?

  ②本次修改可能对程序中相关的逻辑和数据造成什么影响?引起什么问题?

  ③上次遇到的类似问题是如何排除的?

复制文件:

* 命令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

* 例子:

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3

scp /home/space/music/1.mp3 中国矿业大学-主页:/home/root/others/music

scp /home/space/music/1.mp3 中国矿业大学-主页:/home/root/others/music/001.mp3

* 复制目录:

* 命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

或者

scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

* 例子:

scp -r /home/space/music/ [email protected]:/home/root/others/

scp -r /home/space/music/ 中国矿业大学-主页:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

一、输入框

1、字符型输入框:

(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>2、数值型输入框:</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>3、日期型输入框<strong>:</strong></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>(2)异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&*(){}[]等可能导致系统错误的字符</p> <p>(3)安全性检查:不能直接输入,就copy,是否数据检验出错?</p> <p>4、信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.</p> <p></p> <p><strong>二、搜索功能</strong></p> <p>若查询条件为输入框,则参考输入框对应类型的测试方法</p> <p>1、功能实现:</p> <p>(1)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到</p> <p>(2)比较长的名称是否能查到</p> <p>(3)输入系统中不存在的与之匹配的条件</p> <p>(4)用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明。</p> <p>2、组合测试:</p> <p>(1)不同查询条件之间来回选择,是否出现页面错误(单选框和多选框最容易出错)</p> <p>(2)测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错。</p> <p><strong>三、添加、修改功能</strong></p> <p></p> <p>1、特殊键:(1)是否支持Tab键 (2)是否支持回车键</p> <p>2、提示信息:(1)不符合要求的地方是否有错误提示</p> <p>3、唯一性:(1)字段唯一的,是否可以重复添加,添加后是否能修改为已存在的字段(字段包括区分大小写以及在输入的内容前后输入空格,保存后,数据是否真的插入到数据库中,注意保存后数据的正确性)</p> <p>4、数据 正确性:</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></p> <p><strong>四、删除功能</strong></p> <p>1、特殊键:(1)是否支持Tab键 (2)是否支持回车键</p> <p>2、提示信息:(1)不选择任何信息,直接点击删除按钮,是否有提示(2)删除某条信息时,应该有确认提示</p> <p>3、数据 实现:(1)是否能连续删除多个产品(2)当只有一条数据时,是否可以删除成功 (3)删除一条数据后,是否可以添加相同的数据(4)如系统支持批量删除,注意删除的信息是否正确 (5)如有全选,注意是否把所有的数据删除(6)删除数据时,要注意相应查询页面的数据是否及时更新 (7)如删除的数据与其他业务数据关联,要注意其关联性(如删除部门信息时,部门下游员工,则应该给出提示)(8)如果结果列表中没有记录或没有选择任何一条记录,点击删除按钮系统会报错。</p> <p>如:某一功能模块具有最基本的增删改查功能,则需要进行以下测试</p> <p>单项功能测试(增加、修改、查询、删除)</p> <p>增加——>增加——>增加 (连续增加测试)</p> <p>增加——>删除</p> <p>增加——>删除——>增加 (新增加的内容与删除内容一致)</p> <p>增加——>修改——>删除</p> <p>修改——>修改——>修改 (连续修改测试)</p> <p>修改——>增加(新增加的内容与修改前内容一致)</p> <p>修改——>删除</p> <p>修改——>删除——>增加 (新增加的内容与删除内容一致)</p> <p>删除——>删除——>删除 (连续删除测试)</p> <p></p> <p><strong>五、注册、登陆模块</strong></p> <p>1、注册功能:</p> <p>(1)注册时,设置密码为特殊版本号,检查登录时是否会报错</p> <p>(2)注册成功后,页面应该以登陆状态跳转到首页或指定页面</p> <p>(3)在注册信息中删除已输入的信息,检查是否可以注册成功。</p> <p>2、登陆 功能:</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>(11)已删除的用户名和密码</p> <p>(12)登录时,当页面刷新或重新输入数据时,验证码是否更新</p> <p><strong>六、上传图片测试</strong></p> <p>1、功能 实现:</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></p> <p><strong>七、查询结果列表</strong></p> <p>1、功能 实现:</p> <p>(1)列表、列宽是否合理</p> <p>(2)列表数据太宽有没有提供横向滚动</p> <p>(3)列表的列名有没有与内容对应</p> <p>(4)列表的每列的列名是否描述的清晰</p> <p>(5)列表是否把不必要的列都显示出来</p> <p>(6)点击某列进行排序,是否会报错(点击查看每一页的排序是否正确)</p> <p>(7)双击或单击某列信息,是否会报错</p> <p></p> <p><strong>八、返回键检查</strong></p> <p>1、一条已经成功提交的记录,返回后再提交,是否做了处理</p> <p>2、检查多次使用返回键的情况,在有返回键的地方,返回到原来的页面多次,查看是否会出错</p> <p></p> <p><strong>九、回车键检查</strong></p> <p>1、在输入结果后,直接按回车键,看系统如何处理,是否会报错</p> <p></p> <p><strong>十、刷新键检查</strong></p> <p>1、在Web系统中,使用刷新键,看系统如何处理,是否会报错</p> <p></p> <p><strong>十一、直接URL链接检查</strong></p> <p>1、在Web系统中,在地址栏直接输入各个功能页面的URL地址,看系统如何处理,是否能够直接链接查看(匿名查看),是否有权限控制,是否直接执行,并返回相应结果页;</p> <p></p> <p><strong>十二、界面和易用性测试</strong></p> <p>1、风格、样式、颜色是否协调</p> <p>2、界面布局是否整齐、协调(保证全部显示出来的,尽量不要使用滚动条</p> <p>3、界面操作、标题描述是否恰当(描述有歧义、注意是否有错别字)</p> <p>4、操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作)</p> <p>5、提示界面是否符合规范(不应该显示英文的cancel、ok,应该显示中文的确定等)</p> <p>6、界面中各个控件是否对齐</p> <p>7、日期控件是否可编辑</p> <p>8、日期控件的长度是否合理,以修改时可以把时间全部显示出来为准</p> <p>9、查询结果列表列宽是否合理、标签描述是否合理</p> <p>10、查询结果列表太宽没有横向滚动提示</p> <p>11、对于信息比较长的文本,文本框有没有提供自动竖直滚动条</p> <p>12、数据录入控件是否方便</p> <p>13、有没有支持Tab键,键的顺序要有条理,不乱跳</p> <p>14、有没有提供相关的热键</p> <p>15、控件的提示语描述是否正确</p> <p>16、模块调用是否统一,相同的模块是否调用同一个界面</p> <p>17、用滚动条移动页面时,页面的控件是否显示正常</p> <p>18、日期的正确格式应该是XXXX-XX-XX或XXXX-XX-XX XX:XX:XX</p> <p>19、页面是否有多余按钮或标签</p> <p>20、窗口标题或图标是否与菜单栏的统一</p> <p>21、窗口的最大化、最小化是否能正确切换</p> <p>22、对于正常的功能,用户可以不必阅读用户手册就能使用</p> <p>23、执行风险操作时,有确认、删除等提示吗</p> <p>24、操作顺序是否合理</p> <p>25、正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。</p> <p>26、系统应该在用户执行错误的操作之前提出警告,提示信息.</p> <p>27、页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。</p> <p>28、合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。</p> <p>29、检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业</p> <p></p> <p><strong>十三、兼容性测试</strong></p> <p>兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,</p> <p>包括操作系统兼容和应用软件兼容,可能还包括硬件兼容</p> <p>比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。</p> <p></p> <p><strong>十四、链接测试</strong></p> <p>主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。</p> <p>可以使用特定的工具如XENU来进行链接测试。</p> <p>1导航测试</p> <p>导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?</p> <p>在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。</p> <p>导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。</p> <p>Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。</p> <p></p> <p>2图形测试</p> <p>在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:</p> <p>(1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。</p> <p>(2)验证所有页面字体的风格是否一致。</p> <p>(3)背景颜色应该与字体颜色和前景颜色相搭配。</p> <p>(4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩,最好能使图片的大小减小到30k以下</p> <p>(5)最后,需要验证的是文字回绕是否正确。如果说明文字指向右边的图片,应该确保该图片出现在右边。不要因为使用图片而使窗口和段落排列古怪或者出现孤行。</p> <p>通常来说,使用少许或尽量不使用背景是个不错的选择。如果您想用背景,那么最好使用单色的,和导航条一起放在页面的左边。另外,图案和图片可能会转移用户的注意力。</p> <p></p> <p><strong>十五、业务流程测试(主要功能测试)</strong></p> <p>业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。</p> <p></p> <p><strong>十六、安全性测试</strong></p> <p>(1)SQL注入(比如登陆页面)</p> <p>(2)XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。</p> <p>  document.write("abc")</p> <p>  <script>alter("abc")</script></p> <p>(3)URL地址后面随便输入一些符号,并尽量是动态参数靠后</p> <p>(4)验证码更新问题</p> <p>(5)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。</p> <p>(6)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。</p> <p>(7)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。</p> <p>(8)当使用了安**接字时,还要测试加密是否正确,检查信息的完整性。</p> <p>(9)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。</p> <p></p> <p><strong>十八、测试中应该注意的其他情况</strong></p> <p>1、在测试时,与网络有关的步骤或者模块必须考虑到断网的情况</p> <p>2、每个页面都有相应的Title,不能为空,或者显示“无标题页”</p> <p>3、在测试的时候要考虑到页面出现滚动条时,滚动条上下滚动时,页面是否正常</p> <p>4、URL不区分大小写,大小写不敏感</p> <p>5、、对于电子商务网站,当用户并发购买数量大于库存的数量时,系统如何处理</p> <p>6、测试数据避免单纯输入“123”、“abc“之类的,让测试数据尽量接近实际</p> <p>7、进行测试时,尽量不要用超级管理员进行测试,用新建的用户进行测试。测试人员尽量不要使用同一个用户进行测试</p> <p>8、提示信息:提示信息是否完整、正确、详细</p> <p>9、帮助信息:是否提供帮助信息,帮助信息的表现形式(页面文字、提示信息、帮助文件),帮助信息是否正确、详细</p> <p>10、可扩展性:是否由升级的余地,是否保留了接口</p> <p>11、稳定性:运行所需的软硬件配置,占用资源情况,出现问题时的容错性,对数据的保护</p> <p>12、运行速度:运行的快慢,带宽占用情况</p> <p></p> <p><strong>WEB测试资料</strong></p> <p>1页面部分</p> <p>(1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)</p> <p>(2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)</p> <p>(3) 页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)</p> <p>(4) 页面特殊效果(如特殊字体效果、动画效果)是否显示</p> <p>(5) 页面特殊效果显示是否正确</p> <p></p> <p>2 页面元素部分</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></p> <p>3 功能部分</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>单项功能测试(增加、修改、查询、删除)</p> <p>增加——>增加——>增加 (连续增加测试)</p> <p>增加——>删除</p> <p>增加——>删除——>增加 (新增加的内容与删除内容一致)</p> <p>增加——>修改——>删除</p> <p>修改——>修改——>修改 (连续修改测试)</p> <p>修改——>增加 (新增加的内容与修改前内容一致)</p> <p>修改——>删除</p> <p>修改——>删除——>增加 (新增加的内容与删除内容一致)</p> <p>删除——>删除——>删除 (连续删除测试)</p> <p>(11)查询功能分为两种情况,验证操作结果。</p> <p>1、打开页面时自动显示结果,则不特别强调;</p> <p>2、需要手工操作进行查询,则每次在其他功能完成后进行。</p> <p></p> <p>4 提示信息</p> <p>(1) 成功、失败提示</p> <p>(2) 操作结果提示</p> <p>(3) 确认提示</p> <p>(4) 危险操作、重要操作提示</p> <p>(5) 返回页面 提示后显示的页面</p> <p></p> <p>5 容错性</p> <p>注意以下几种情况</p> <p>(1) 为空、非空</p> <p>(2) 唯一性</p> <p>(3 )字长、格式</p> <p>(4) 数字、邮政编码、金额、电话、电子邮件、ID号、密码</p> <p>(5) 日期、时间</p> <p>(6) 特殊字符 (对数据库)英文单、双引号,&符号</p> <p></p> <p>6 权限部分</p> <p>功能权限: 指定用户可以使用那些功能,不能使用那些功能</p> <p>数据权限: 指定用户可以处理那些数据,不可以处理那些数据。可</p> <p>以合并到功能测试</p> <p>操作权限: 在逻辑关系上,操作前后顺序、数据处理情况。可以合</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></p> <p>7 键盘操作</p> <p>(1) Tab键的使用</p> <p>(2) 上下方向键的使用</p> <p>(3) Enter键的使用</p> <p>(4) 系统设定快捷键的使用(如果设置有快捷键)</p> <p></p> <p>8 测试中还应注意的其他事项</p> <p>(6) 完整性:是否是一个整体,没有功能缺损</p> <p>(7) 易用性:使用是否方便</p> <p>(8) 一致性:类似的问题用类似的方法处理</p> <p>(9) 提示信息:提示信息是否完整、正确、详细</p> <p>(10) 帮助信息:是否提供帮助信息,帮助信息的表现形式(页面文字、提示信息、帮助文件),帮助信息是否正确、详细</p> <p>(11) 兼容性:包括操作系统兼容和应用软件兼容,可能还包括硬件兼容</p> <p>(12) 可扩展性:是否由升级的余地,是否保留了接口</p> <p>(13) 稳定性:运行所需的软硬件配置,占用资源情况,出现问题时的容错性,对数据的保护</p> <p>(14) 运行速度:运行的快慢,带宽占用情况</p> <p></p> <p><strong>输入方面总结:</strong></p> <p>1.验证输入与输出的是否信息一致;</p> <p>  2.输入框之前的标题是否正确;</p> <p>  3.对特殊字符的处理,尤其是输入信息徐需要发送到数据库的。特殊字符包括:'(单引号)、"(双引号)、[](中括号)、()(小括号)、{}(大括号)、;(分号)、<>(大于小于号)……</p> <p>  4.对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte左右;</p> <p>  5.输入框本身的大小、长度;</p> <p>  6.不同内码的字符的输入;</p> <p>  7.对空格、TAB字符的处理机制;</p> <p>  8.字符本身显示的颜色;</p> <p>  9.密码输入窗口转换成星号或其它符号;</p> <p>  10.密码输入框对其中的信息进行加密,防止采用破解星号的方法破解;</p> <p>  11.按下ctrl和alt键对输入框的影响;</p> <p>  12.对于新增、修改、注册时用的输入框,有限制的,应该输入时作出提示,指出不允许的或者标出允许的;</p> <p>  13.对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变,比如选了湖南就应该列出湖南下面的市,或者选了某些条件之后,一些输入框会关闭或转为只读状态;</p> <p>  14.输入类型;根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的。例如,是否允许输入数字或字母,不允许输入其他字符等。</p> <p>  15.输入长度;数据库字段有长度定义,当输入过长时,提交数据是否会出错。</p> <p>  16.输入状态;当处于某种状态下,输入框是否处于可写或非可写状态。例如,系统自动给予的编号等栏位作为唯一标识,当再次处于编辑状态下,输入框栏位应处于不可写状态,如果可写对其编辑的话,可能会造成数据重复引起冲突等。</p> <p>  暂时,就能想这么多,看大家谁还有观点,互相学习下!</p> <p>  17.如果是会进行数据库操作的输入框,还可以考虑输入SQL中的一些特殊符号如单引号等,有时会有意想不到的错误出现</p> <p>  18.输入类型 输入长度 是否允许复制粘贴 为空的情况 空格的考虑 半角全角测试 对于密码输入框要考虑显示的内容是* 输入错误时的提示信息及提示信息是否准确</p> <p>  19.可以先了解你要测试的输入框在软件系统的某个功能中所扮演的角色,然后了解其具体的输入条件,在将输入条件按照有效等价类,无效等价类,边界值等方法进行测试用例的设计。</p> <p>  20.关键字有大小写混合的情况;</p> <p>  21.关键字中含有一个或多个空格的情况,包括前空格,中间空格(多个关键字),和后空格;</p> <p>  22.关键字中是否支持通配符的情况(视功能而定);</p> <p>  23.关键字的长度分别为9、10、11个字符时的情况;</p> <p>  24.关键字是valid,但是没有匹配搜索结果的情况;</p> <p>  25.输入html的标签会出现哪些问题?输入<html> 会出现什么问题呢?(这条是我自己发现的,在网上也没找到类似的东东,呵呵,大家凑合着看吧)</p> <p><strong>还有几点:</strong></p> <p>1.功能点测试:是否满足需求所要求的功能</p> <p>2.字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.</p> <p>3.字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.</p> <p>4.标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.</p> <p>5.中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.</p> <p>6.信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.</p> <p>7.界面测试:界面的正确性、一致性、友好性、易用性。</p> <p></p> <p><strong>重点关注:</strong></p> <p>1.易用性检查:确保软件易于理解,方便使用。</p> <p>2.一致性检查:</p> <p>a.注意系统页面的风格是否一致,如字的大小、颜色、字体要相同。</p> <p>b.提示信息的表达方式是否一致。</p> <p>c.按钮排列顺序是否一致。</p> <p>d.back, cancel等按钮跳转页面处理是否一致。</p> <p>e.各字段的名称,位置、长度、类型是否和设计文档要求一致,如Employee No和LoginName不一致。</p> <p>3.正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。</p> <p>4.友好性检查:</p> <p>a.提示信息是否友好.</p> <p>b.系统应该在用户执行错误的操作之前提出警告,提示信息.</p> <p>c.页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。</p> <p>5.合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。</p> <p>6.检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。</p> <p>7.页面最大化检查:测试最大化/最小化/还原时页面是否做了对应的处理。</p> <p><strong>最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!</strong> <strong>希望能帮助到你!<span style="color:#fe2c24;">【100%无套路免费领取】</span></strong></p> <p class="img-center"><img alt="" src="http://img.e-com-net.com/image/info8/c7ad4acbea3e4f11a4bae4e6ab2d4c37.jpg" width="0" height="0"></p> <p class="img-center"><img alt="" src="http://img.e-com-net.com/image/info8/a85aca6562024ee5aa85dd59e53dd7ba.jpg" width="0" height="0"></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1731637361198051328"></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">你可能感兴趣的:(软件测试,程序员,接口测试,自动化测试,web测试,测试工程师)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1902412642098671616.htm" title="程序员集体失业?DeepSeek这6个反常识用法竟能替代写代码" target="_blank">程序员集体失业?DeepSeek这6个反常识用法竟能替代写代码</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>上周三凌晨两点,我盯着满屏报错的SpringBoot项目抓耳挠腮时,无意间在GitHubtrending榜发现了个宝藏项目。这个让3000+程序员连夜改简历的AI工具,居然把我的烂代码变成了性能提升40%的优雅实现——这可不是什么天方夜谭,而是我亲身经历的DeepSeek实战故事。你可能不信,现在用自然语言描述需求就能生成可运行代码。就像上周我接到个紧急任务:要在三天内完成电商平台的优惠券系统。当</div> </li> <li><a href="/article/1902411843398332416.htm" title="python 正则表达式的语法及使用" target="_blank">python 正则表达式的语法及使用</a> <span class="text-muted">主打Python</span> <a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/1.htm">基础语法</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>python正则表达式的语法及使用概念:按照程序员的指示,字符串里提取你要的数据。应用:爬虫清洗数据,匹配电话,匹配邮箱,匹配账号……最重要的就是(.*?)正则语法(元字符)1、?:前面的内容出现0-1次2、+:前面的内容出现1-多次3、*:前面的内容出现0-多次‘’’正则(Regular):记住的点:1、(.?)2、re.findall()结果是一个列表3、用(.?)的是后,一定要复制,而不是手</div> </li> <li><a href="/article/1902384977484509184.htm" title="打开 WIN10 命令框的几种姿势" target="_blank">打开 WIN10 命令框的几种姿势</a> <span class="text-muted">夜璨如炽</span> <a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC%E5%8A%9E%E5%85%AC/1.htm">脚本办公</a><a class="tag" taget="_blank" href="/search/cmd/1.htm">cmd</a> <div>前言作为一个程序员,命令窗一定是每个人都会接触使用的东西,最近发现身边好多人还只会在开始里找,其实还有很多便捷的打开方式,一定还有很多人不知道吧。这里给分享一下。一、WIN+R键这个应该是知道最多的吧,首先win+R键打开运行框然后输入cmd或者cmd.exe然后回车ENTER,或者点击确定。OK二、文件夹地址栏启动平时一般桌面上都会开启几个文件夹直接在红线地址栏部分,输入cmd回车,OK</div> </li> <li><a href="/article/1902349961572446208.htm" title="程序员不用写代码?DeepSeek这个隐藏功能让我惊掉下巴" target="_blank">程序员不用写代码?DeepSeek这个隐藏功能让我惊掉下巴</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>凌晨三点半,显示器蓝光映着我的黑眼圈。就在我第18次修改接口文档时,同事老王突然在微信甩来个神秘链接:"用这个,今晚能睡个好觉"。我点开那个叫DeepSeek的页面,没想到接下来的三个小时,我经历了职业生涯最魔幻的加班夜。你见过会自己写测试用例的AI吗?那天晚上,我把项目需求文档往DeepSeek的对话框一扔,它竟然像资深架构师似的,先把需求拆解成模块,接着自动生成了带注释的接口文档。最绝的是,在</div> </li> <li><a href="/article/1902340625559252992.htm" title="程序员别再用GitHub了!这个国产神器让你的开发效率原地起飞" target="_blank">程序员别再用GitHub了!这个国产神器让你的开发效率原地起飞</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>去年这个时候,我还在为团队协作的代码管理头疼不已。直到某天凌晨三点,盯着满屏的Git指令的我突然发现,自己居然把feature分支合并到了生产环境——这个要命的失误让我在茶水间被同事调侃了整整三个月。就在我准备写辞职信的时候,一个偶然的机会让我遇到了DeepSeek,这个国产开发神器彻底改变了我的职业生涯。你可能很难想象,现在我的团队每天要处理200多个合并请求,但再也没出现过那次凌晨三点的事故。</div> </li> <li><a href="/article/1902298598771585024.htm" title="基于流程的测试质量体系" target="_blank">基于流程的测试质量体系</a> <span class="text-muted">tf的测试笔记</span> <a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><a class="tag" taget="_blank" href="/search/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F/1.htm">策略模式</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>随着时间的推移,产品不断的迭代,业务越来越成熟丰富,意味着业务流程、市场需求和客户期望变得更加复杂和多样化。因此对软件测试人员也相应带来更高的要求;测试人员也应该慢慢从业务测试工作中转变到业务质量保障中,向质量保障团队转型,承担更多的质量提升工作,更好的为业务提供支持。以前我们可能主要关注测试这一块的工作,把测试注意防的任务做好就足够了,但后面可能不仅要测试还要更广泛地关注整个软件开发生命周期的质</div> </li> <li><a href="/article/1902289650798620672.htm" title="python爬虫 Selenium库安装与使用" target="_blank">python爬虫 Selenium库安装与使用</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/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a> <div>Selenium是一个强大的自动化测试工具,它也可以用来进行网页抓取。与传统的请求库(如requests)不同,Selenium可以模拟真实用户的行为,比如点击按钮、填写表单等,这对于那些依赖于JavaScript动态加载内容的网站来说非常有用。安装Selenium首先确保你的环境中已经安装了Python和pip。然后通过pip安装Selenium:pipinstallselenium如果你使用的</div> </li> <li><a href="/article/1902283847375056896.htm" title="Java常用API" target="_blank">Java常用API</a> <span class="text-muted">EmbodiedTech</span> <a class="tag" taget="_blank" href="/search/Java%E6%9E%B6%E6%9E%84%E6%A0%88/1.htm">Java架构栈</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/dubbo/1.htm">dubbo</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、今日内容介绍、API概述常用API(全称是ApplicationProgramInterface应用程序接口),说人话就是:别人写好的一些程序,给咱们程序员直接拿去调用。Java官方其实已经给我们写好了很多很多类,每一个类中又提供了一系列方法来解决与这个类相关的问题。比如String类,表示字符串,提供的方法全都是对字符串操作的。比如ArrayList类,表示一个容器,提供的方法都是对容器中的</div> </li> <li><a href="/article/1902278692730630144.htm" title="程序员996写bug?这个AI工具让你头发越秃代码越香" target="_blank">程序员996写bug?这个AI工具让你头发越秃代码越香</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>凌晨三点的写字楼里,小王第18次按下F5刷新浏览器,控制台又跳出了新的报错信息。咖啡杯底的褐色痕迹在显示器蓝光下格外刺眼,他突然想起入职时主管说的"程序员越秃越强",摸了摸发际线苦笑——原来这句话的潜台词是"用头发换代码"啊。直到上个月团建时,我发现隔壁工位的老张居然在团建现场掏出笔记本写代码。凑近一看,他正在用DeepSeek的智能提示功能自动补全单元测试。更气人的是,这厮今年居然还长出了新发茬</div> </li> <li><a href="/article/1902266441554522112.htm" title="Redis查看所有key的命令" target="_blank">Redis查看所有key的命令</a> <span class="text-muted">abckingaa</span> <a class="tag" taget="_blank" href="/search/Bee/1.htm">Bee</a><a class="tag" taget="_blank" href="/search/DB/1.htm">DB</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><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/database/1.htm">database</a> <div>Redis查看所有key的命令keys*启动了Redis服务器和客户端,在客户端输入keys*即可(若需要密码登录,先输入密码)Bee,互联网新时代的JavaORM工具,更快、更简单、更自动,开发速度快,运行快,更智能!Bee让程序员/软件工程师,从手工编码中解放出来,Bee更适合智能软件制造时代!十分钟即可入门!立志做最懂用户的软件!</div> </li> <li><a href="/article/1902247150788603904.htm" title="C++语言的声明式编程" target="_blank">C++语言的声明式编程</a> <span class="text-muted">俞嫦曦</span> <a class="tag" taget="_blank" href="/search/%E5%8C%85%E7%BD%97%E4%B8%87%E8%B1%A1/1.htm">包罗万象</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>C++语言的声明式编程引言声明式编程是一种编程范式,它强调描述程序的“要做什么”而不是“怎么做”。在传统的命令式编程中,程序员通常需要详细地指定操作步骤,而在声明式编程中,程序员则可以专注于结果的描述。这一编程风格在C++语言的使用中,虽然不如某些其他语言(如Haskell或SQL)那样突出,但依然通过一些特性和标准库提供了支持。本文将深入探讨C++中的声明式编程,包括其基本概念、与命令式编程的对</div> </li> <li><a href="/article/1902205791952236544.htm" title="【总结】Pytest vs Behave,BDD 测试框架哪家强?" target="_blank">【总结】Pytest vs Behave,BDD 测试框架哪家强?</a> <span class="text-muted"><e^πi+1=0></span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/pytest/1.htm">pytest</a><a class="tag" taget="_blank" href="/search/behave/1.htm">behave</a> <div>引言在测试驱动开发(TDD)和行为驱动开发(BDD)流行的今天,Pytest和Behave成为了Python生态中最常见的自动化测试框架。那么,究竟该选择哪一个?它们各自有哪些优缺点?本篇文章将为你全面解析!1.什么是Pytest?Pytest是一个强大且灵活的Python测试框架,适用于单元测试、功能测试和API测试。它支持简单的函数式测试,同时具备强大的插件机制。Pytest的核心特点:✅语法</div> </li> <li><a href="/article/1902205019470491648.htm" title="软件测试服务商怎么选,看这篇文章就够了" target="_blank">软件测试服务商怎么选,看这篇文章就够了</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E4%BA%91/1.htm">阿里云</a> <div>软件行业的发展历程中,软件测试从最初单纯依靠大量人工进行测试,逐渐向工具化、平台化转变。早期,由于软件开发规模相对较小,技术迭代速度较慢,软件测试主要依赖人工手动执行各类测试用例,耗费大量人力与时间。随着软件复杂度提升、开发周期缩短,自动化测试工具应运而生,帮助测试人员提高效率,减少重复性工作。而近年来,云测试平台的兴起,更是打破了地域与设备限制,实现了测试资源的集中管理与高效利用。这一系列变迁不</div> </li> <li><a href="/article/1902200867826757632.htm" title="C++核心编程手册" target="_blank">C++核心编程手册</a> <span class="text-muted">易方达蓝筹</span> <a class="tag" taget="_blank" href="/search/C/1.htm">C</a><a class="tag" taget="_blank" href="/search/or/1.htm">or</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不</div> </li> <li><a href="/article/1902198710507466752.htm" title="程序员都在偷偷用的黑科技工具,老板发现后竟主动要求加薪?" target="_blank">程序员都在偷偷用的黑科技工具,老板发现后竟主动要求加薪?</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>上周三凌晨两点,我正对着满屏的SQL报错信息抓耳挠腮。同事老王突然在微信群里甩来一行代码:"试试用DeepSeek分析你的数据库日志。"我半信半疑地复制粘贴,没想到这个看似普通的指令,居然在十秒内就定位到了索引缺失的根源。更魔幻的是,第二天早会上,那个总板着脸的CTO居然在全员面前点名表扬了我的"超强问题排查能力"。这就是DeepSeek最让我着迷的地方——它总能把复杂的代码问题变成幼儿园算术题。</div> </li> <li><a href="/article/1902192286062669824.htm" title="当 Selenium 的 click() /send_keys()等方法失效时:JavaScript 在 UI 自动化测试中的神奇用法" target="_blank">当 Selenium 的 click() /send_keys()等方法失效时:JavaScript 在 UI 自动化测试中的神奇用法</a> <span class="text-muted">做测试的小薄</span> <a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E9%AB%98%E9%98%B6/1.htm">测试高阶</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a> <div>引言在使用Selenium进行WebUI自动化测试时,我们通常依赖Selenium提供的原生方法(如click()、send_keys()等)来操作页面元素。然而,在某些复杂场景下,这些方法可能会失效。例如:元素被遮挡或隐藏。页面加载延迟导致元素无法正常交互。某些特殊的动态行为无法通过Selenium原生方法触发。这时,JavaScript就成为了我们的“救星”。通过driver.execute_</div> </li> <li><a href="/article/1902175377883721728.htm" title="Python的Pytest测试框架(1)" target="_blank">Python的Pytest测试框架(1)</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/pytest/1.htm">pytest</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1、Pytest测试框架手工执行测试:熟悉业务写用例(分模块)执行用例并记录生成本轮的测试报告自动化测试:熟悉业务写用例(手工用例转化为自动化测试用例)用代码表达用例(代码写出用例)代码收集测试用例代码执行测试用例代码生成测试报告。自动化的思路基本是跟手工测试一样的,建立在手工测试基础上的一种更高效率的进阶和升华的方式。测试框架:unittestpytest,技术栈,提供了表示测试用例,发现测试用</div> </li> <li><a href="/article/1902171468452655104.htm" title="Selenium与MySQL数据校验自动化" target="_blank">Selenium与MySQL数据校验自动化</a> <span class="text-muted">噔噔噔噔@</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E9%9D%A2%E8%AF%95%E9%A2%98%E4%B8%93%E6%A0%8F/1.htm">软件测试面试题专栏</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%9F%BA%E7%A1%80%E5%8F%8A%E5%B7%A5%E5%85%B7%E5%88%86%E4%BA%AB/1.htm">软件测试基础及工具分享</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/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/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E6%88%90%E6%B5%8B%E8%AF%95/1.htm">集成测试</a> <div>在使用Selenium进行UI自动化测试时,如果需要连接MySQL数据库进行数据校验,可以通过以下步骤实现:1.安装必要的库首先,确保你已经安装了以下Python库:selenium:用于UI自动化。mysql-connector-python或pymysql:用于连接MySQL数据库。你可以使用以下命令安装这些库:pipinstallseleniummysql-connector-python2</div> </li> <li><a href="/article/1902165036835598336.htm" title="没有接口文档,该怎么进行接口测试?" target="_blank">没有接口文档,该怎么进行接口测试?</a> <span class="text-muted">海姐软件测试</span> <a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95/1.htm">接口测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/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%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>想获取更多软件测试干货和实战技巧?欢迎扫码关注我的小红书【海姐的测试星球】,一起交流学习,解锁更多测试秘籍!在面试中如何回答好“没有接口文档,该怎么进行接口测试”,可按以下要点阐述,全面展现你的应变能力和专业素养:沟通协调-与开发人员沟通:主动与开发人员交流,了解接口的基本信息,如接口的用途、请求方法(GET、POST等)、大致的请求参数和响应格式。例如,询问该接口是用于用户登录、数据查询还是其他</div> </li> <li><a href="/article/1902139181077950464.htm" title="Hyperlane:轻量、高效、安全的 Rust Web 框架新选择" target="_blank">Hyperlane:轻量、高效、安全的 Rust Web 框架新选择</a> <span class="text-muted">LTPP</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>Hyperlane:轻量、高效、安全的RustWeb框架新选择在Web开发的世界中,框架的选择往往决定了项目的效率与未来。Hyperlane,一款基于Rust语言打造的轻量级Web框架,正以其卓越的性能、简洁的设计和可靠的安全性,迅速成为开发者的新宠。无论你是追求极致性能的资深程序员,还是希望快速上手的初学者,Hyperlane都能为你带来惊喜。让我们一起走进Hyperlane的世界,探索它的魅力</div> </li> <li><a href="/article/1902135140872679424.htm" title="微服务 vs 单体架构:你应该选择哪种模式?" target="_blank">微服务 vs 单体架构:你应该选择哪种模式?</a> <span class="text-muted">测试者家园</span> <a class="tag" taget="_blank" href="/search/IT%E6%B1%82%E8%81%8C%E9%9D%A2%E8%AF%95/1.htm">IT求职面试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91%E5%92%8C%E6%B5%8B%E8%AF%95/1.htm">测试开发和测试</a><a class="tag" taget="_blank" href="/search/%E8%B4%A8%E9%87%8F%E6%95%88%E8%83%BD/1.htm">质量效能</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">智能化测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/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%B4%A8%E9%87%8F%E6%95%88%E8%83%BD/1.htm">质量效能</a> <div>用ChatGPT做软件测试软件架构从来都不只是技术选型,更是对企业战略、团队能力和业务模型的深刻反映。微服务和单体架构之争,表面上是技术模式的对比,实则映射着对复杂性管理、敏捷响应和可持续发展的不同认知与选择。今天,当“云原生”、“容器化”、“分布式”成为行业热词,微服务被推上了神坛。然而,单体架构真的过时了吗?微服务就注定是未来的唯一解法吗?如果你仍然在为“选择哪种架构”而困惑,这篇文章将带你跳</div> </li> <li><a href="/article/1902026790537326592.htm" title="Unreal Engine开发:Unreal Engine基础入门_蓝图基础" target="_blank">Unreal Engine开发:Unreal Engine基础入门_蓝图基础</a> <span class="text-muted">chenlz2007</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%912/1.htm">游戏开发2</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E5%B9%BB/1.htm">虚幻</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/1.htm">游戏引擎</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>蓝图基础蓝图概述什么是蓝图?蓝图(Blueprint)是UnrealEngine中的一个可视化脚本系统,允许开发者通过拖拽和连接节点来创建游戏逻辑、关卡脚本和自定义行为。蓝图使得非程序员也能轻松地进行游戏开发,同时也为程序员提供了一个快速迭代和调试的工具。蓝图系统基于C++的底层架构,因此可以实现与使用C++相同的功能,但更加直观和易于理解。蓝图的类型UnrealEngine中的蓝图主要有以下几种</div> </li> <li><a href="/article/1902024270196830208.htm" title="Spring之Bean生命周期源码解析-一文掌握(一)" target="_blank">Spring之Bean生命周期源码解析-一文掌握(一)</a> <span class="text-muted">小徐Chao努力</span> <a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/1.htm">源码分析</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>Spring最重要的功能就是帮助程序员创建对象(也就是IOC),而启动Spring就是为创建Bean对象做准备,所以我们先明白Spring到底是怎么去创建Bean的,也就是先弄明白Bean的生命周期。Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的Bean的生成过程1.生成BeanDefinitionSpring启动的时候会进行扫描,会先调用org.springfr</div> </li> <li><a href="/article/1902002343885467648.htm" title="用 AI 提高开发效率:自动生成代码、优化 SQL 查询、写测试用例" target="_blank">用 AI 提高开发效率:自动生成代码、优化 SQL 查询、写测试用例</a> <span class="text-muted">Js_x</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/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a> <div>引言人工智能(AI)正在深刻改变软件开发行业。从代码自动补全到SQL查询优化,再到自动化测试,AI工具已经成为开发者提高生产力的重要助手。本文将介绍ChatGPT、GitHubCopilot、Tabnine等AI编程工具的实际应用,帮助开发者更高效地编写代码、优化数据库查询,并自动生成测试用例。1.AI代码生成:提升开发效率1.1ChatGPT代码生成ChatGPT具备强大的自然语言处理能力,可以</div> </li> <li><a href="/article/1901988730814656512.htm" title="5.C语言基础入门:数据类型、变量声明与创建详解" target="_blank">5.C语言基础入门:数据类型、变量声明与创建详解</a> <span class="text-muted">CILMY23</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%8F%98%E9%87%8F/1.htm">变量</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/1.htm">数据类型</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E7%BD%AE%E7%B1%BB%E5%9E%8B/1.htm">内置类型</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B1%BB%E5%9E%8B/1.htm">自定义类型</a> <div>C语言基础入门:数据类型、变量声明与创建详解C语言往期系列文章目录往期回顾:C语言是什么?编程界的‘常青树’,它的辉煌你不可不知VS2022社区版C语言的安装教程,不要再卡在下载0B/s啦C语言入门:解锁基础概念,动手实现首个C程序C语言概念之旅:解锁关键字,字符,字符串的秘密,揭秘语句和注释,程序员的宝藏文章目录C语言基础入门:数据类型、变量声明与创建详解C语言往期系列文章目录前言回顾一、数据类</div> </li> <li><a href="/article/1901976119800819712.htm" title="程序员必看!DeepSeek全栈开发实战指南:从代码生成到性能优化" target="_blank">程序员必看!DeepSeek全栈开发实战指南:从代码生成到性能优化</a> <span class="text-muted">AI创享派</span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>一、DeepSeek技术新突破:程序员效率革命(开篇结合最新技术动态)2025年2月25日,DeepSeek接连放出两大技术王牌:全球首个面向MoE模型的全栈通信库DeepEP开源,以及深度思考R1模型的全面升级。这两项技术突破对程序员群体意义重大:通信效率飞跃:DeepEP通过NVLink优化实现GPU间158GB/s传输速度,后端开发者训练大模型时可节省60%集群资源推理性能突破:R1模型在H</div> </li> <li><a href="/article/1901971326097223680.htm" title="PMP冲刺每日一题(33)答案解析" target="_blank">PMP冲刺每日一题(33)答案解析</a> <span class="text-muted">PM简读馆</span> <a class="tag" taget="_blank" href="/search/PMP%E6%AF%8F%E6%97%A5%E6%89%93%E5%8D%A1/1.htm">PMP每日打卡</a><a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a> <div>作者简介:程序员转项目管理领域优质创作者个人邮箱:[2707492172@qq.com]PMP资料导航:PM菜鸟(查阅PMP大纲考点)座右铭:上善若水,水善利万物而不争。绿泡泡:PM简读馆(包含更多PM常用免费资料)目录试题1试题2试题3试题4试题5试题1标题:项目启动一个月后,副总裁表示,由于需求不完整,项目应停止。若要确认这一点,项目经理应该查阅哪份文件?选项A:概述可行需求选项的会议备忘录分</div> </li> <li><a href="/article/1901971323895214080.htm" title="PMP冲刺每日一题(33)" target="_blank">PMP冲刺每日一题(33)</a> <span class="text-muted">PM简读馆</span> <a class="tag" taget="_blank" href="/search/PMP%E6%AF%8F%E6%97%A5%E6%89%93%E5%8D%A1/1.htm">PMP每日打卡</a><a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a> <div>作者简介:程序员转项目管理领域优质创作者个人邮箱:[2707492172@qq.com]PMP资料导航:PM菜鸟(查阅PMP大纲考点)座右铭:上善若水,水善利万物而不争。绿泡泡:PM简读馆(包含更多PM常用免费资料)试题1标题:项目启动一个月后,副总裁表示,由于需求不完整,项目应停止。若要确认这一点,项目经理应该查阅哪份文件?A、概述可行需求选项的会议备忘录B、项目章程C、客户意向书D、项目使命说</div> </li> <li><a href="/article/1901971197575360512.htm" title="JavaScript 异步编程:从回调到 Async/Await 进化" target="_blank">JavaScript 异步编程:从回调到 Async/Await 进化</a> <span class="text-muted">PM简读馆</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E6%9D%82%E8%B0%88/1.htm">技术杂谈</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>作者简介:程序员转项目管理领域优质创作者个人邮箱:[2707492172@qq.com]PMP资料导航:PM菜鸟(查阅PMP大纲考点)座右铭:上善若水,水善利万物而不争。绿泡泡:PM简读馆(包含更多PM常用免费资料)目录1.回调函数(Callback)2.Promise3.Generator4.Async/Await在JavaScript中,异步编程是一个非常重要的概念,因为JavaScript是</div> </li> <li><a href="/article/1901944969669701632.htm" title="高薪程序员&面试题精讲系列131之Eureka如何实现高可用?自我保护机制是怎么回事?" target="_blank">高薪程序员&面试题精讲系列131之Eureka如何实现高可用?自我保护机制是怎么回事?</a> <span class="text-muted">一一哥Sun</span> <a class="tag" taget="_blank" href="/search/Java%E9%AB%98%E8%96%AA%E9%9D%A2%E8%AF%95%E9%A2%98%E7%B2%BE%E8%AE%B2%E7%B3%BB%E5%88%97/1.htm">Java高薪面试题精讲系列</a><a class="tag" taget="_blank" href="/search/eureka/1.htm">eureka</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一.面试题及剖析1.今日面试题你熟悉Eureka吗?服务治理是怎么回事?Eureka的服务治理包含哪些内容?自我保护机制是怎么回事?Eureka怎么实现高可用?Eureka挂了,服务间还能通信吗?Eureka的工作原理是怎么样的?2.题目剖析在上一篇文章中,</div> </li> <li><a href="/article/8.htm" title="LeetCode[Math] - #66 Plus One" target="_blank">LeetCode[Math] - #66 Plus One</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a> <div>原题链接:#66 Plus One   要求: 给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。 注意: 1. 数字的较高位存在数组的头上,即num1表示数字1239 2. 每一位(数组中的每个元素)的取值范围为0~9   难度:简单   分析: 题目比较简单,只须从数组</div> </li> <li><a href="/article/135.htm" title="JQuery中$.ajax()方法参数详解" target="_blank">JQuery中$.ajax()方法参数详解</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和    delete也可以使用,但仅部分浏览器支持。 timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局</div> </li> <li><a href="/article/262.htm" title="JConsole & JVisualVM远程监视Webphere服务器JVM" target="_blank">JConsole & JVisualVM远程监视Webphere服务器JVM</a> <span class="text-muted">Kai_Ge</span> <a class="tag" taget="_blank" href="/search/JVisualVM/1.htm">JVisualVM</a><a class="tag" taget="_blank" href="/search/JConsole/1.htm">JConsole</a><a class="tag" taget="_blank" href="/search/Webphere/1.htm">Webphere</a> <div>    JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。   使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。   首先我们看WAS服务器端的配置.   1、登录was控制台https://10.4.119.18</div> </li> <li><a href="/article/389.htm" title="自定义annotation" target="_blank">自定义annotation</a> <span class="text-muted">120153216</span> <a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a> <div>Java annotation 自定义注释@interface的用法 一、什么是注释      说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源</div> </li> <li><a href="/article/516.htm" title="CentOS 5/6.X 使用 EPEL YUM源" target="_blank">CentOS 5/6.X 使用 EPEL YUM源</a> <span class="text-muted">2002wmj</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#</div> </li> <li><a href="/article/643.htm" title="在SQLSERVER中查找缺失和无用的索引SQL" target="_blank">在SQLSERVER中查找缺失和无用的索引SQL</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>--缺失的索引 SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,          last_user_seek ,    </div> </li> <li><a href="/article/770.htm" title="Spring3 MVC 笔记(二) —json+rest优化" target="_blank">Spring3 MVC 笔记(二) —json+rest优化</a> <span class="text-muted">7454103</span> <a class="tag" taget="_blank" href="/search/Spring3+MVC/1.htm">Spring3 MVC</a> <div>接上次的 spring mvc 注解的一些详细信息!                          其实也是一些个人的学习笔记  呵呵! </div> </li> <li><a href="/article/897.htm" title="替换“\”的时候报错Unexpected internal error near index 1 \ ^" target="_blank">替换“\”的时候报错Unexpected internal error near index 1 \ ^</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E2%80%9C%5C%E6%9B%BF%E6%8D%A2%E2%80%9D/1.htm">“\替换”</a> <div>发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...   在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常   public class Main {          /*</div> </li> <li><a href="/article/1024.htm" title="POJ 1035 Spell checker(哈希表)" target="_blank">POJ 1035 Spell checker(哈希表)</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%9A%B4%E5%8A%9B%E6%B1%82%E8%A7%A3--%E5%93%88%E5%B8%8C%E8%A1%A8/1.htm">暴力求解--哈希表</a> <div>/* 题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词 要求按照输入时候的排名输出 题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重 */ #include <iostream> //#define using namespace std; const int HASH =</div> </li> <li><a href="/article/1151.htm" title="通过原型实现javascript Array的去重、最大值和最小值" target="_blank">通过原型实现javascript Array的去重、最大值和最小值</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/array/1.htm">array</a><a class="tag" taget="_blank" href="/search/prototype/1.htm">prototype</a> <div>用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。 实现代码如下:   <script type="text/javascript"> Array.prototype.unique = function() { var a = {}; var le</div> </li> <li><a href="/article/1278.htm" title="UIWebView实现https双向认证请求" target="_blank">UIWebView实现https双向认证请求</a> <span class="text-muted">bewithme</span> <a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a> <div>          什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求 中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知</div> </li> <li><a href="/article/1405.htm" title="NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)" target="_blank">NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><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/NoSQL/1.htm">NoSQL</a> <div>3.事务处理         Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中</div> </li> <li><a href="/article/1532.htm" title="各数据库分页sql备忘" target="_blank">各数据库分页sql备忘</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a> <div>ORACLE 下面这个效率很低 SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20; 下面这个效率很高 SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_</div> </li> <li><a href="/article/1659.htm" title="【Scala七】Scala核心一:函数" target="_blank">【Scala七】Scala核心一:函数</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>1. 如果函数体只有一行代码,则可以不用写{},比如 def print(x: Int) = println(x) 一行上的多条语句用分号隔开,则只有第一句属于方法体,例如   def printWithValue(x: Int) : String= println(x); "ABC"   上面的代码报错,因为,printWithValue的方法</div> </li> <li><a href="/article/1786.htm" title="了解GHC的factorial编译过程" target="_blank">了解GHC的factorial编译过程</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a> <div>GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。 关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类</div> </li> <li><a href="/article/1913.htm" title="Java-Collections Framework学习与总结-LinkedHashMap" target="_blank">Java-Collections Framework学习与总结-LinkedHashMap</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/LinkedHashMap/1.htm">LinkedHashMap</a> <div>        前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。       </div> </li> <li><a href="/article/2040.htm" title="读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory" target="_blank">读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/abstract/1.htm">abstract</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * Abstract Factory Pattern * 抽象工厂模式的目的是: * 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇” * 这些接口是相关或者相依赖的</div> </li> <li><a href="/article/2167.htm" title="压暗面部高光" target="_blank">压暗面部高光</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a> <div>方法一、压暗高光&重新着色 当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。 下面讲一下我今天处理高光区域的心得: 皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。 处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。 如果想简化步骤,可以只进行着色(参看下面的步骤1</div> </li> <li><a href="/article/2294.htm" title="Java VisualVM监控远程JVM" target="_blank">Java VisualVM监控远程JVM</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/visualvm/1.htm">visualvm</a> <div>Java VisualVM监控远程JVM    JDK1.6开始自带的VisualVM就是不错的监控工具. 这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面   通过JMX连接远程机器, 需要经过下面的配置: 1. 修改远程机器JDK配置文件 (我这里远程机器是linux).    </div> </li> <li><a href="/article/2421.htm" title="Saiku去掉登录模块" target="_blank">Saiku去掉登录模块</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/saiku/1.htm">saiku</a><a class="tag" taget="_blank" href="/search/%E7%99%BB%E5%BD%95/1.htm">登录</a><a class="tag" taget="_blank" href="/search/olap/1.htm">olap</a><a class="tag" taget="_blank" href="/search/BI/1.htm">BI</a> <div> 1、修改applicationContext-saiku-webapp.xml <security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />  <security:intercept-url pattern=&qu</div> </li> <li><a href="/article/2548.htm" title="浅析 Flex中的Focus" target="_blank">浅析 Flex中的Focus</a> <span class="text-muted">dsjt</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Flex/1.htm">Flex</a><a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a> <div>关键字:focus、 setFocus、 IFocusManager、KeyboardEvent 焦点、设置焦点、获得焦点、键盘事件 一、无焦点的困扰——组件监听不到键盘事件 原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸</div> </li> <li><a href="/article/2675.htm" title="Yii全局函数使用" target="_blank">Yii全局函数使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址) 我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在</div> </li> <li><a href="/article/2802.htm" title="设计模式之单例模式二(解决无序写入的问题)" target="_blank">设计模式之单例模式二(解决无序写入的问题)</a> <span class="text-muted">come_for_dream</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a><a class="tag" taget="_blank" href="/search/volatile/1.htm">volatile</a><a class="tag" taget="_blank" href="/search/%E4%B9%B1%E5%BA%8F%E6%89%A7%E8%A1%8C/1.htm">乱序执行</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E9%87%8D%E6%A3%80%E9%AA%8C%E9%94%81/1.htm">双重检验锁</a> <div>                在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该</div> </li> <li><a href="/article/2929.htm" title="程序员从初级到高级的蜕变" target="_blank">程序员从初级到高级的蜕变</a> <span class="text-muted">gcq511120594</span> <a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/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/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。 我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。 现在我们把淫浸代码时间超过3年的开发人员称为</div> </li> <li><a href="/article/3056.htm" title="Reverse Linked List" target="_blank">Reverse Linked List</a> <span class="text-muted">hcx2013</span> <a class="tag" taget="_blank" href="/search/list/1.htm">list</a> <div>Reverse a singly linked list.   /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ p</div> </li> <li><a href="/article/3183.htm" title="Spring4.1新特性——数据库集成测试" target="_blank">Spring4.1新特性——数据库集成测试</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a> <div>目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T</div> </li> <li><a href="/article/3310.htm" title="C# Ajax上传图片同时生成微缩图(附Demo)" target="_blank">C# Ajax上传图片同时生成微缩图(附Demo)</a> <span class="text-muted">liyonghui160com</span> <div>    1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)         2.C#位图处理  System.Drawing。         3.最新demo支持IE7,IE8,Fir</div> </li> <li><a href="/article/3437.htm" title="Java list三种遍历方法性能比较" target="_blank">Java list三种遍历方法性能比较</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下: package com.hisense.tiger.list; import java.util.ArrayList; import java.util.Iterator;</div> </li> <li><a href="/article/3564.htm" title="300个涵盖IT各方面的免费资源(上)——商业与市场篇" target="_blank">300个涵盖IT各方面的免费资源(上)——商业与市场篇</a> <span class="text-muted">shoothao</span> <a class="tag" taget="_blank" href="/search/seo/1.htm">seo</a><a class="tag" taget="_blank" href="/search/%E5%95%86%E4%B8%9A%E4%B8%8E%E5%B8%82%E5%9C%BA/1.htm">商业与市场</a><a class="tag" taget="_blank" href="/search/IT%E8%B5%84%E6%BA%90/1.htm">IT资源</a><a class="tag" taget="_blank" href="/search/%E5%85%8D%E8%B4%B9%E8%B5%84%E6%BA%90/1.htm">免费资源</a> <div> A.网站模板+logo+服务器主机+发票生成 HTML5 UP:响应式的HTML5和CSS3网站模板。 Bootswatch:免费的Bootstrap主题。 Templated:收集了845个免费的CSS和HTML5网站模板。 Wordpress.org|Wordpress.com:可免费创建你的新网站。 Strikingly:关注领域中免费无限的移动优</div> </li> <li><a href="/article/3691.htm" title="localStorage、sessionStorage" target="_blank">localStorage、sessionStorage</a> <span class="text-muted">uule</span> <a class="tag" taget="_blank" href="/search/localStorage/1.htm">localStorage</a> <div>W3School 例子   HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储   之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不</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>