51Testing软件测试论坛

标题: 如何测试cookies? [打印本页]

作者: forever41003    时间: 2006-3-17 21:18
标题: 如何测试cookies?
今天面试问到这个问题,没答好,大家发表高见,我是菜鸟
作者: testing    时间: 2006-3-17 21:43
先研究一下什么是cookie,然后就知道该从哪些方面开展测试了:

因特网的Cookie技术极其简单,却有着旺盛的生命力。Cookie开始引起众人的注意是从2000年二月份随着网络隐私权的提出开始的,有关的辩论至今仍在继续。从另一方面来说,Cookie使得浏览网页更容易了。几乎所有的主要的网站设计者都使用了Cookie,因为他们想为浏览网站的人提供一个更好的浏览环境,同时也能更加准确地收集访客的信息。

  有家颇有影响的报纸上曾刊登了一篇很有深度的关于网络隐私的文章,上面对于Cookie的定义是这样的:

  “Cookie是Web网站放在您的硬盘上的程序。它守在您的电脑里,搜集您的信息以及您在因特网上所做的任何事情,当Web站点需要的时候它能够下载所有这些搜集到的信息。”

  像这样的定义在报刊中相当普遍。问题是,它的定义犯了很大的错误。Cookie不是程序,而且它不能像程序一样地运行,所以它无法为自己搜集任何信息。它也不能从您的电脑上取得您的任何个人资料。

  Cookie的比较确切的定义应该是这个样子:

  “Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‘名/值’对(name-value pairs)的形式储存。”

  举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。

  如果您使用IE浏览器访问Web,您会看到所有保存在您的硬盘上的Cookie。它们最常存放的地方是:c:windowscookies(在Win 2000中则是C:Documents and Settings您的用户名Cookies——作者注)。在我的机器上共有165个文件。每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的Web站点的信息。

  在这个文件夹里的每个Cookie文件都是一个简单而又普通的文本文件。透过文件名,您可以看到是哪个Web站点在您的机器上放置了Cookie(当然站点信息在文件里也有保存)。您也能双击打开每一个Cookie文件。

比如,我访问了goto.com,而且这个站点在我的电脑上放了个Cookie。goto.com的Cookie文件包含了这样的内容:

  UserID A9A3BECE0563982D www.goto.com/

  goto.com在我的电脑上存入了一个单一的“名/值”对。“名/值”对的“名”是UserID,“值”是A9A3BECE0563982D。在我第一次访问goto.com的时候,该网站为我分配了一个唯一的ID并存在我的电脑里。

  (注:除了上面举例的“名/值”对,可能会有其它的“名/值”对同时保存下来。那是浏览器的一些内部信息,一般用户不必多做了解。)


  Amazon.com在我的电脑上保存了稍稍多一些的信息。当我查看Amazon在我的电脑上建立的Cookie文件时,它包含以下内容:

  session-id-time 954242000 amazon.com/

  session-id 002-4135256-7625846 amazon.com/

  x-main eKQIfwnxuF7qtmX52x6VWAXh@Ih6Uo5H amazon.com/

  ubid-main 077-9263437-9645324 amazon.com/

  以上内容显示出Amazon存储了一个主用户ID ubid-main,一个标记每次任务的ID session-id及任务发生的时间session-id-time。还有一个x-main,不知道是什么。

  大多数的网站在您的电脑上只保存一条信息,即用户ID。但一个站点可以用Cookie存储的“名/值”对的最大数目没有任何限制。

  一个“名/值”对仅仅是一条命名的数据,它不是程序,也不能“做”任何事情。一个网站只能取得它放在您的电脑中的信息,它无法从其它的Cookie文件中取得信息,也无法得到您的电脑上的其它任何东西。

  Cookie数据仅仅是Web站点在浏览者硬盘上存储的“名/值”数据对。这就是Cookie的所有内容。Web站点保存了数据,随后又把它取回。一个Web站点只能取得它保存在你电脑上的内容,无法偷窥别的Cookie,更不要说电脑上其他的数据。
  
  Cookie数据的流动过程如下:
  
  ·如果在浏览器上键入了一个Web站点的URL,浏览器向Web站点请求读取网页。比如,您输入了:
http://www.amazon.com
  
  浏览器将从Amazon的服务器读取它的主页。
  
  ·在做上面工作的同时,浏览器将从电脑上寻找Amazon网站设置的Cookie文件。如果找到了Amazon的Cookie文件,浏览器会把文件中的所有“名/值”对同先前的URL一同发给Amazon服务器。如果没有找到,就不发送Cookie数据。
  
  ·Amazon服务器接收Cookie数据和对网页的请求。如果存在“名/值”对,Amazon将使用它。
  
  ·如果没有收到“名/值”对,Amazon知道您在此之前没有访问过它的站点,服务器会为您创建一个新的ID放进Amazon的数据库中,然后把“名/值”对放在传回的网页的头信息里传给您。您的浏览器将在硬盘上保存“名/值”对。
  
  ·每当您再次访问网站时,网站服务器会改变“名/值”对或增加新的“名/值”对。
  
  另外,服务器会随着“名/值”对发送一些其他信息。其一是生存期(Expiration date);还有一个是路径(网站借此把不同的Cookie值与不同的网站部位关联起来)。
  
  您有权控制这个过程。您可以设置一个选项让浏览器在收到网站发来的“名/值”对时提醒您,由您决定是否接受。
作者: jackei    时间: 2006-3-17 21:51
不错,解释的比较清楚了。
作者: weiping2000    时间: 2006-4-6 15:48
学习中
作者: guai00    时间: 2006-4-7 12:05
谢谢,要拿回去学习学习。
作者: guai00    时间: 2006-4-7 12:22
看了一遍,有些了解了。但是还是不知道如何测试?再需要高手指导!
作者: zhousy2001    时间: 2007-3-22 14:46
能说明详细测试方法吗?谢谢,我正需要
作者: nicholas.hl    时间: 2007-3-22 14:49
解释是明白了 但是楼主需要的是具体的测试方法sdlkfj6
作者: helius    时间: 2008-3-19 16:12
主要是测试流程 ~~~~
  望高人指点
作者: 傲然    时间: 2008-3-19 16:23
根据2楼的解释,应该可以设计Case了。感觉这块测的内容不多的
作者: xiongqiwu1119    时间: 2008-3-19 16:30
学习中~~
作者: dujun    时间: 2008-3-21 09:55
是不是测试cookies文件中的 名/值   cookies的有效期限
作者: 雨晴烟晚    时间: 2008-3-25 12:00
主要是来学习的,呵呵,帮不了楼主了
作者: shanxi    时间: 2008-3-25 12:22
楼主多从开发角度了解cookie的包含项

2楼的介绍只是一个大概
作者: 香依    时间: 2008-3-26 16:44
方法呢?????
作者: skyzeng    时间: 2008-3-26 17:51
2楼说得很详细了,如果测的话。

测试你要在cookie里面记录的东西是否记录了,再次使用这些东西是不是可以正确使用。没什么内容了。
作者: chsh    时间: 2009-5-5 16:51
标题: 我理解的cookie
那么意思就是说 cookie是用来保存客户端信息的  是相当于百度搜索中的智能感知吧  无论是URL还是文本框的输入  只要提交了  就会有cookie保存信息啦   那么cookie测试主要就是说信息有没有被保存   就是判断信息编辑页面有没有提交  还有就是看在浏览器中删除cookie之后还有没有信息的智能感知  是不是这么一回事呢
作者: xiaoshi_2011    时间: 2012-5-14 15:22
学习了,谢谢楼主
作者: xiaoshi_2011    时间: 2012-5-14 15:23
回复 17# chsh


    我也有疑惑,怎么样才能全面的测试cookie,是保存还是不保存客户端的信息吗?
作者: xiaoshi_2011    时间: 2012-5-14 15:24
回复 2# testing


    那么我们测试,主要测试点在哪?着重还是看看cookie有没有保存数据吗?
作者: xuli107    时间: 2012-5-15 14:57
不明白,来学习~~
作者: 344876172@qq.co    时间: 2012-6-6 10:30
学习中,有一点了解了,但是还是不是很明白,有没有具体的测试方法
作者: GAY公公    时间: 2012-6-6 14:12
2楼说的很详细,不过还是不明白怎么测,是提交之后我们去查看本地保存的cookies么?还是要我们自己做一个出来测试发送呢?
作者: hawknishi    时间: 2012-6-8 10:59
我认为要测试
1、要保存的内容是否保存。
2、不该保存的东西是否保存了,是否有安全隐患。
3、cookie的有效期。比如如果一个系统用户开在那里就不关闭,会不会一天以后,再次点击系统会报错,因为cookie失效了之类。
作者: chengning    时间: 2012-6-11 17:23
楼主 我觉的这个问题问的太大了 。 一般测试就测试 cookie是否过期,刷新,回车,还有后退什么的在cookie过期和不过期的情况下是怎么处理的。 要是还要测试保存的内容神马的,我觉的,最多就是看看cookie再硬盘中有没有留下保存的记录,要测试到里面的内容,这个难度太高了吧!个人意见
作者: 我不一般    时间: 2012-7-24 08:53
貌似上升到了安全的级别!!!
作者: Miss_欣之    时间: 2013-6-19 10:12
楼主测试点在哪?
作者: polizy    时间: 2013-6-19 10:55
可以考虑使用IECookiesView
作者: 栋婷的春天    时间: 2013-12-9 18:29
是阿,2楼能不能详细为我们讲解一下如何测试cookie
作者: fabulasia    时间: 2013-12-21 11:23
我个人写的一点针对登陆的Cookie测试:
(1)是否有Cookie记录,登陆成功之后Cookie是否记录正确;
(2)如果浏览器中设置为不保存Cookie,关闭浏览器之后,看Cookie是否自动删除;
(3)若Cookie设置为保存一段时间,登陆成功之后关闭浏览器,再次打开浏览器看是否还需要登陆;
(4)Cookie到期之后是否自动从本地删除,Cookie到期保存的登陆状态是否自动退出登陆;
(5)用户登陆之后设置保存登陆状态的Cookie到本地,之后手动删除该Cookie,打开浏览器看用户是否退出登陆;
(6)用户再次登陆Cookie信息是否自动刷新;
作者: sillybug    时间: 2014-5-23 17:25
谁能说说具体测试点,或者用例
作者: Miss_love    时间: 2014-5-23 17:32
学习
作者: 冬菇lian    时间: 2014-5-23 20:45
学习中
作者: caonianvicky    时间: 2014-6-3 11:05
有没有人能告诉我win7里面IE9的cookie是放在哪里的啊?还有其他浏览器的  比如360,谷歌和火狐的,各位大神请指教~
作者: pulingwang    时间: 2014-12-22 13:21
先了解下,然后再学习怎么测试cookies
作者: sunn_za    时间: 2015-1-23 09:30
多谢28楼和30楼的总结呀,对cookie了解得更多了,希望以后有机会能在测试中用上!
作者: shsososummer518    时间: 2015-1-23 14:56
小白的来问问,一般是不是电脑网页浏览器才会面临cookie的测试,基本手机浏览器cookie的问题会简单很多?
作者: dzw51800    时间: 2015-3-27 15:20
菜鸟学习中,感谢回答的两位大大




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2