虽然我们不能控制灾难, 但是我们可以左右灾难的后果! 坚持生的勇气! 那就是希望!

发布新日志

  • 理想化的测试流程只是YY的浮云

    2008-04-04 07:57:05

        在老师们的细心教导下,我们学会了很多测试的理论,方法,流程,etc...

        其它的好说,流程这东西,难办了,毕竟流程的基础是team work,是协调,合作,这由各式各样的人来操作的东西,就难免会走型,偏离初衷了.

        身在一个开发产品型的项目中,就更能体会了.

        由于没有客户的确切需求,以致于开发团队需要凭借经验和讨论来决定需求的最终定论,这样就导致了开发和测试的起步--需求阶段及其不稳定,需求规格是在不断开发,测试中动态变动的,需求阶段根本就没有一个明确清晰的基线.

        我们测试会导致很多无效测试和数量级增长的回归测试;开发也好不到哪去,不稳定的需求导致bug增多,工作量也相应增大.

        和我们QA大姐头聊天谈到这个情况,也没有很有效的办法能够处理这类产品开发类的情况,她也为反复需要跟开发leader间增大的沟通头大中.

        不过说归说,工作还是要好好做地,了解到这项目是跟随着行业的业务流程不断开发的,需要做好3-10年的项目进度预期.

  • 和印度老外的周会议

    2008-04-01 06:45:51

        由于项目产品是由GDCC和GDEC的团队合作开发的,所以我们必须时不时和兄弟团队进行远程会议,交流进度,问题.

        昨晚又加班开会,不过还好,加班都有leader买单吃晚餐,昨晚是肯德基汉堡可乐全家桶,外加蛋塌.

        刚来团队没多久,不能太嚣张,所以眼看着我喜欢的蛋塌全部落入了女组员的嘴巴,我......赔笑吃汉堡.

        一如既往难听懂的印度英语,要不是她们leader是个美国人,真不知道我们的会议是不是会指鹿为马.

        插曲:印度团队tina正好生日,跟着她们leader唱happy birthday.(我们都在嘟哝)

        会议主题就是51里面学的东西,QTP和QC,不过重点是相互的连接调用,也就是QTP连接到QC,上传脚本,而QC可以直接调用QTP,指定主机进行脚本运行.

        会议规会议,完会了我和几个QA测试组组员留下来讨论问题(我比较有目的性,通过交流最大限度尽快融入团队),很顺利.

        现在project都是团队开发,所以交流还是很重要的,有时候甚至比技术更重要,所谓的团队精神,团队精神媒介就是交流,所以,别老是一个人闷想,一个人闷做,小组里,小组间多凑凑热闹,会受益匪浅的!

  • QTP自动添加所有存在记录(有点长,请耐心)

    2008-03-28 20:46:32Digest 2

        老写些乱七八糟的感性文字,该静下心来好好写写测试相关的文章了.

        QA大姐头告诉我,接下来我的任务就是配合一个老员工进行一个模块的自动化测试,QTP的,不错,正中下怀,比起LR,我还是更加喜爱QTP.

        文sir当时结束我们QTP课程的时候给我们留了个据说是CPC里面考的QTP题目。

        题目的内容是这样的,实现自动插入flight小程序的数据库中的所有记录(任意数量)。

        这时候我们需要考虑很多问题,登陆不是主要事件,忽略,当你进入order订单界面的时候,我们主要考虑动态变化的元素,主要有3个元素:flyfrom;flyto;以及确定了from和to之后的flights列表.

        根据分析我们可以发现,flyfrom永远是10取1,index从0-9,而flyto则是去掉被选定的from之后剩余的9取1,index从0-8;这两个动态元素比较容易控制.

        难点是flights弹出列表的记录数,这个记录数根据选定的from,to进行对应变化,也就是说有10的10次方种列表,我们无法写出简单的脚本对其进行自动读取.

        改变一下思路,我们事先不知道flights列表的index,那我们就添加额外步骤去确认每一次的index,只要我们控制好循环,就可以完成其遍历所有存在记录的目的.

    以下是自动添加1000条相互不同记录的脚本

    登陆部分(忽略)

    Dialog("Login").WinEdit("Agent Name:").Set "abanban"
    Dialog("Login").WinEdit("Agent Name:").Type  micTab
    Dialog("Login").WinEdit("Password:").SetSecure "47a173562d6104f53d107ca1be4ccb82c48020f1"
    Dialog("Login").WinEdit("Password:").Type  micReturn

    循环插入记录,重点部分,三层循环

    '定义插入记录数,插入计数器

    'InsertCount用来控制指定数量插入不同记录
    InsertCount=1000
    InsertNum=0

    '取往来地点的最大值,固定,Maxfrom是flyfrom,Maxto是flyto
    Maxfrom = Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount
    Maxto=Maxfrom-1

    '最外层循环,Fly from
    For i=0 to Maxfrom-1

    '第二层循环,Fly to 
     For j=0 to Maxto-1

    '这一段用作取当前往来的所有可选航班,可变,在每一次往来变化中动态获得flightsnum,
    '用来作为do while 循环的退出条件
      Window("Flight Reservation").WinButton("Button").Click
      Window("Flight Reservation").ActiveX("MaskEdBox").Type "1111111111"
      Window("Flight Reservation").WinComboBox("Fly From:").Select i
      Window("Flight Reservation").WinComboBox("Fly To:").Select j
      Window("Flight Reservation").WinButton("FLIGHT").Click

    '取flightsnum,每确认一次from,to取一次

      flightsnum=Window("Flight Reservation").Dialog("Flights Table").WinList("From").GetItemsCount

    '因为该步骤只是取不断变化的flights数量,所有cancel掉

      Window("Flight Reservation").Dialog("Flights Table").WinButton("Cancel").Click

         k=0
    '取flightsnum完成,初始化第三层循环计数器K

    '第三层循环,按照from i, to j, 航班 k遍历,k不断自增到flightsnum-1

      Do While 1  '死循环,无限

       Window("Flight Reservation").WinButton("Button").Click

       Window("Flight Reservation").ActiveX("MaskEdBox").Type "1111111111"
       
       Window("Flight Reservation").WinComboBox("Fly From:").Select i
       Window("Flight Reservation").WinComboBox("Fly To:").Select j
       Window("Flight Reservation").WinButton("FLIGHT").Click
       Window("Flight Reservation").Dialog("Flights Table").WinList("From").Activate k

       Window("Flight Reservation").WinEdit("Name:").Set "aban"
                Window("Flight Reservation").WinEdit("Tickets:").Set RandomNumber(1, 10)

       Window("Flight Reservation").WinButton("Insert Order").Click

       
       Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000

    '计数器自增
       k=k+1

       InsertNum=InsertNum+1


    '插入记录数到达指定数,退出
       If InsertNum=InsertCount Then
        ExitTest
       End If

    '判断当前动态航班表flights是否遍历结束,结束则跳出第三层循环
       If flightsnum=k Then
        Exit do
       End If
       
         Loop

    '第二层循环,下一个flyto

     Next

    '第一层循环,下一个flyfrom

    Next

     

  • 注定劳碌命啊!

    2008-03-26 21:32:46

        注定劳碌命啊!

        头一天入职,就加班开会,和印度兄弟团队开远程会议,那个印度英语,真是英语中的英语了。

        不过还好,大姐头请客吃饭,介绍我这个新来的苦力!去了个什么小餐馆叫“百变熊猫”,真不知道老板四川来的还是动物园出来的。

        头大死,要开始看文档了!

        plus:

        51学习的东西都能立即在实际工作中用到,其实第一天的会议上会议内容就是测试项划分以及案例设计方法,

    用了正交分析.

        有很多东西要学,spss数据挖掘工具(基础),TOAD(oracle的开发工具),数据仓库方面的业务知识,等等..

        很幸运,我的直属leader也就是测试QA组大姐头是我校友,嘿嘿,今后可以套近乎了!

  • 何去何从,天给方向,人来把舵

    2008-03-21 21:26:07

        一边是老师的宪报“2个team内定要你”,另一边则是持续了2-3周的忐忑不安的等待。

        总算等来了HP,team2的offer,由于他们比team1流程走得更加迅速,所有的1,2组间问题都在人事这里已经处理完毕。

        我内心本就倾向于去这一组,Century View,数据仓库,数据挖掘,数据分析,更大的挑战,带来的就是更多的锻炼,还不算老,继续进行自我积累!

        报了昂立的中级口译班,这个9月应该可以把中译拿下。

        然后着眼高译,1-1.5年,短期目标完成英语的积累。

        中期目标30之前转攻日语,争取33前拿下日一。

        “毕竟不可能一口吃成个胖子!”

  • 八月迷情

    2008-03-19 14:18:05

        好电影是会让你全身心沉浸进去的。

        八月迷情,去欣赏一下吧,感谢推荐它给我的朋友。

        No fire, No weapon, No aliens, Maybe even no passion.

        Everything is all the seek, worry, selfish, want to find, and want to be found!

        And full of the amazing music.

        Affect you inside into the heart to the skin outside!

        Worth seeing! I bet.

  • 以前没有的执着!

    2008-03-17 02:47:11

        不知道从何时起,我忽然发现自己变得十分地执着,不管是爱好,还是自己的决定。

        是好事吧,起码让我能够以始为终,全身心去坚持投入。

        近5个月的英语学习是个收获,对NBA和F1更加地疯狂不知道算是福是祸!

        今年的F1注定是多事之秋,取消了TC(牵引力控制系统)无疑增加了比赛的激烈程度,但也使得事故发生率直线上升,墨尔本开幕战只有7辆车完赛便是一个例证,这是2005年美国闹剧之外估计排的上前三的最少完赛率了。替车手们捏一把汗,可怜的悲情王子kimi,又一次被“退赛”这老朋友眷顾。今年,是汉密尔顿之年!

        火箭21连胜,十分惊艳,没有姚明,没有兰德里,有的是空前的团结和不懈的坚持。

        为此,今晨3点半的西部巅峰之战火箭--湖人绝不容错过。

        我没错过,因为我的生物钟比我自己还兴奋,凌晨2点就让我醒过来出去散步了。

        期待胜利,期待登顶!

        plus:

        刚看完全场比赛,疯了快,火箭3分疯了,有惊险,但最后赢地太爽了,出去晨跑降温!

        慢慢发现,火箭赢球的幕后英雄--巴蒂尔,每一次都是贴身紧逼,每一次都是对方的top star,每一次都是恰到好处防到对方脸上而又不犯规,加上底角3分,回防的盖帽......我们不需要也没能力每个人都成为英雄,不过我们可以把我们自己做到最好,那就是成功!

        Hot inside, need a running outside

  • 五体投地推荐:味之都--沸腾鱼

    2008-03-15 16:41:45

        314,所谓的白色情人节,跟“大铃”一起出去吃了顿饭,不是因为日子,只是因为家里没人做饭,7点多到家也没东西吃^-^

        早听说味之都价廉物美,是工薪阶层,平民百姓的乐土,今天就是瞅准了去的。

        浦东八佰伴附近,味之都一楼,我们点了一份招牌沸腾鱼,一份肉末粉丝堡,两碗米饭,一共38元。

        沸腾鱼分量十足,美味可口;粉丝堡么,特下饭,总之--超赞,2个人可以吃到满饱。

        口渴了,不用点饮料,点他们新出的酒酿小圆子,可口又解渴,3元一杯。

        其实还有很多好吃的性价比超高的菜色,等待今后一一品尝了。

        plus:本人喜欢吃回锅肉,抵不住嘴馋加了份回锅肉,22元,虽然看似贵了点,不过,恩,很地道,十分正宗,也不算高消费!

  • 我很牛,God proves

    2008-03-13 06:57:24

        性格使然,我喜欢给我身边的人们带来快乐和惊喜。

        51快毕业了,要各奔东西了,所以呢,也不藏着掖着了,给了26期一个原子弹。

        于是,我们26期想不在51历史上留名都不可能了。

        对了,还有,今天51被一本IT界杂志采访,鄙人还有幸和宋峰老师,徐小美女同学一同接受“访谈”,不知道我那傻傻的样子会不会拖他们整体形象的后腿!

        起码,长了次脸。

        我爆料了,“Married,been a papa!”

        结果,4号线坍塌了,2号线故障了(我差点没被憋死在黄浦江下),老天汗颜!

  • 请平静地看待这篇blog,不能扁我

    2008-03-10 07:05:05

        昨晚,做了个奇怪的梦。

        这世界上没有人类了,或者说,人类的位置被狗狗取代了,我们都还存在,只是都是不同种的各式小狗,当然也有大狗,26期51传奇班级还是那么活跃,加上老师,一群puppy!

        当然有没有对号入座的,一起完善一下吧,绝对没有恶意!

        26期“学狗”列表

        101斑点狗:我

        斗牛:黄宇

        吉娃娃:小芳

        西施卷毛:王璇

        日本仲:梁晶

        金毛寻回犬:王琳琳

        伯瑞犬:徐惠卿,吕春华

        大白熊:李岩

        哈威那:加小琴

        松狮:吴贤材

        拉布拉多:博一凡,张毅君

        伯恩山:雁博,春燕

        小鹿犬:王骁

        大丹:王鹏

        查理士王小猎犬:陶然

        冠毛:陆峰

        笃宾:王宝林,杜洪泽

        纽芬兰犬:王辉

        罗秦犬:刘彦

        雪纳瑞(大型):邯郸,许超

        爱斯基摩:韩靖

        洛威纳:黄勇

        山地犬:桑毅群

        牧羊犬:张磊

        巴西犬:杨明章

        比雄犬:王睿

        总算完成了。。。。。。

        大轰动,51老师们

        澳洲牧羊:周峰,李波

        沙皮:陈霁

        藏敖:陈文广

        标准雪纳瑞:柯鑫

        玩具猎鹬犬:刘志(罪过罪过,差点忘了)

        秋田犬:杨志

        哈士奇:周春江

        蝴蝶犬:谢璐袆

        黑背:宋峰

        贵宾:王琰

        博美:万宁

        葡萄牙水犬:王静兰,吴晓红

        可蒙犬:肚子

        京八:不敢写下去了。。。。。。

        待续!!!!!!   

  • 三碗不过岗,三十碗也不散伙!!!

    2008-03-08 06:59:56Digest 1

        喝啤酒喝多了的后遗症就是睡不好觉,头疼,于是早上6点爬起来出去买“王老吉”,希望可以止痛!

        效果,一般,不过清醒了少许!

        我本性象风一样,总喜欢扎堆,吹到这,吹到那,所以总会有许多许多的“历史”留住我那傻傻不上照的模样。

        恩,这辈子我错过了什么,我就丢块砖在地上,于是,这世上便有了长城!这应该是我某个祖宗的一生写照!

        散伙饭,其实散不了的,藕断丝连对不,过个十几,二十年,我回51当老师!

        26期,一直被诟病的一个集体,注意,很好很团结,所以,我们虽然没有好基础,我们虽然没有高智商,不过我们能坚持,所以我们开心,跟李波老师上课给我们灌输的思想一致----“以终为始”,为了什么来51,为了好工作,好薪水,这又为了什么,为了开心happy的生活,恩,昨晚很high很happy!

        完成个壮举,我跟全班所有女生都照了一对一合影,嘿嘿,装醉出风头。

        陈霁老师,喝倒了,不行,不行,功力都练到“猥琐”上去了,最后找不到他人了(也找不到电锯妹了),小小鄙视一下;文广老师,man级的人物,曾经因为帮下属找回场子打架迷倒一片花季少女,不过成家了,伤心一太平洋的女孩;李波老师,周峰老师(可惜没来),终极boss级人物,各项指数已趋向满格,有此等人物,51肯定能发扬光大。

        不得不提咱们的班导,哎。。。。。。。。。麦霸啊!还欠我《网球王子》的光碟没还。

        女老师,恩,都很矜持啦,没怎么大high,女性心中外表仪态总是第一位的,要不然各大商厦第一层就不是化妆品了。

        同学太多,不一一记录了,免得写多了出绯闻!

        恩,思考了一会,头不疼了,继续睡觉去!

  • 明天team2面试

    2008-03-03 20:33:57

        上周接到宋sir宪报,已经通过了HP的team1的面试,就等着拿offer了,心情比较平静,自己的进步自己知道,表现也不算差,算是得偿夙愿了。

        今天接到team2的面试通知,明天下午,呵呵,看来自己还算抢手,再去努力一回吧,如果能够拿到2份offer,也算对所有老师和自己有个满意的交代和答卷了!

        Good luck to me again!

  • 坚持者,最起码有收获

    2008-02-28 08:17:40

        昨天进行了HP内部QTP组的面试,还算顺利,感触颇深。

        不是对我的面试,而是对我的英语。

        要知道,决定来51培训的时候,我几乎是个英语哑巴,其实词汇量也不是多,充其量能看懂大学课本,不过,4个月,也就才短短4个月,我已经能说能听了,起码全英文面试完全可以应付自如。很欣慰,也总算知道了老师们一直在我们耳边撕磨的“有毅力,坚持才有收获”等种种耳边风的正真意义。

        我的真实经历过程:决定好好学英语,电脑,mp3,friends的中英文片子,还有旺旺英语的每日报,每天背friends台词,别管什么,盯准了从第一季第一集开始死背,有用,mp3听听英文歌曲,开始87.9太难别去尝试,每天3-4个小时英语轰炸,够一个傻老娘们学会任何一门语言的了(老罗语录)。

        2个半月基本能够熟练背诵2集,可以开始尝试87.9的一般新闻,别听政治部分,那是天书,再轰炸自己1个半月,好了,世界清静了,你基本上可以应付口语的日常交流了,之后就是词汇量的继续积累了。

        给所有现在和今后51的兄弟姐姐们的经验,真的管用,不管用除非你没坚持,要不你来找我!

  • 人生中的难题不是工作、学习,而是和亲人的关系

    2008-02-26 10:15:09

        我变了很多,我的生活正在朝着我自己定义的方向转变。

        明天,将去HP进行team1的第二轮面试,信心还是挺大的。

        不过,早上,和老爸大吵了一架,就为了一个卫生间热水管的问题,哎,和老年人沟通真太难了,他们脑子里面都是省钱省钱,我知道,能省钱当然省钱,为了省钱而不方便,何必呢,虽然我们家不富裕。

        心情不好,但我不是一个情绪暴躁的人,想来这是个大家都好心但没有好结果的事情,不过生活中往往会充斥着这类双方都好心但最终伤双方心的事情,这类事情不是一个方程式,一个程序就可以解决的,太无解了,比起工作中学习中的难题,亲情感情上的难题更加令人头痛,而且影响更加剧烈。不过从稚嫩走向成熟,这是必经之路,智商和情商都可以改变,不过都很难而已。

        整理好自己,我知道我能好好处理所有事情,就像4个月前我辞职去培训,因为我知道,我很优秀。

        很好很强大,不过也挺傻挺天真。

  • 精打细算

    2008-02-04 11:36:36

        长假,好长一个假啊。

        一考虑到这点就浑身乏力,提不起精神来,加上连天大雪,只好窝在家里跟电脑屏幕大眼瞪小眼。

        国定假日休息到13日,14日上班,这下好了,快递和花店估计肯定忙不过来了。鄙人还是防患于未然,先期准备起来,趁还没涨价买好了米奇花束,再到时候加点巧克力,All under control!

       

  • Qtp的Database check point

    2008-01-24 11:00:32

        Qtp很强大,强大在它的定制性上,许多控件的属性,都可以灵活地进行运行时动态定义取值。

        对鄙人来说,比较感兴趣它的check point,特别是里面的数据库测试点部分。

        案例:如果我们需要测试某一条选定的记录,那check point中的constant部分就可以实现了,这一点比较简单,不过实际测试过程中我们会遇到许多复杂的情况,比如Qtp附带的flight程序中页面显示的单条购票的总价Total值是否计算正确?

        分析测试需求,我们发现首先需要了解flight的数据库结构,我们能够在flights表中找到航班单价,能够在orders表中找到定票数量和航班的等级属性class(定义一等,商务,经济舱),数据库中没有保存total值,这时候我们就不能直接光用Database check point对数据库进行数据比较了,经过考虑,有2种思路可以实现测试需求。

        1.正向测试:使用Qtp录制一段插入记录的动作,然后修改脚本,参数化航班信息(random使数据更真实),在一个循环中不断插入记录,同时取下显示界面上的total值,再设置Database check point进行total值和从表中取出值计算后结果的比较。

        2.反向测试:利用原有已经存在表中的数据进行测试,录制利用记录号打开记录的动作,修改脚本,利用一个循环遍历所有存在记录,同时取下显示界面上的total值,再设置Database check point进行total值和从表中取出值计算后结果的比较。

        实行时的难点在于:

        1.Database check point的预期值和实际值都是动态变化的,需要参数化

        2.界面上的total取值中含有价格符号以及小数精度。eg:(¥3.00)

        3.反向中的循环次数会有意外(如果记录中存在删除的记录,则就会有记录号不连续的情况)

        最终考虑选取正向测试方案,参数化插入记录属性。

        在循环中取到total的text,使用Environment("total")= trim(CSng(mid(var,2)))来处理该值

        var是getroproperty的输出,mid去除¥符号,CSng转换成单精度数,trim去除多余的0(3.80会成3.8;2.00会成2)

        再设置一个环境变量(保存动态 select 命令)

        Environment("select")="select a.Ticket_Price*b.Tickets_Ordered*choose(b.class, 3, 2, 1) from Flights a, Orders b where a.Flight_Number=b.Flight_Number and b.Order_Number="&tordnum

        tordnum是从界面上取出的插入的order number,choose函数替换输出class,整句sql语句计算得出该条记录正确的总价。

        在循环插入的循环体最后插入Database check point,预期值参数化成Environment,选择total,然后再去资源选项resources中修改这个check point的source部分,将其也参数化成Environment,选择select,这样整个check point就会动态地进行循环判断。

        最终得到我们的测试报告,从result中查看结果!

  • 感触

    2008-01-17 17:09:59

        模拟面试结束了,OK,没什么大问题。

        回来看到某某的空间又更新了,“1°温暖,100°爱情!”一个很唯美的故事,能让人掉泪的那种。

        不过现实中,生活很现实,别老把感情,生活想那么唯美。

        当开始恋爱的时候,你会象小狗爱它心爱的骨头那样,充满占有性;

        当你深刻懂得爱的时候,你会象新婚螳螂那样,不求回报;

        而真正的感情,你们会变成海豚,变成狼,那才叫一生一世!

        强烈建议你去看看“狼行成双”,一个动物的唯美故事!

  • 误解

    2008-01-17 09:29:13

       二阶段考试结束了,考的不算好,哎,本来以为可以更好一点的。

       被同学说成“你一定很花心的!”,悲哀,难道双鱼座背负的宿命就是多情么,什么是误解,谬论,这就是,世上原本没有误解,说的人多了,就成了误解了,甚至演变成一种“文化”。  

       没什么必要去辩解,我不是为了让所有人认可而活着的,虽然我隐藏了自己某些东西,呵呵,只要知道的人理解,就OK了。

       看到某某写了些“永远”之类的言语,感慨颇深,哪那么多煽情的语言啊,生活很现实的,别太理想化,最重要的一点,你能不能包容对方所有的缺点一辈子,你发现的,你现在没发现的,甚至是你现在不能忍受的,而且,说老实话,虽然你说的这个字是两个人的事情,但做这个事情的时候你应该知道,那是你一个人的事情,不是每时每刻都能够相互理解,给与回应,大多数情况下,只是一种你自己不会后悔的单方面付出!!

  • 阴天

    2008-01-13 14:20:08

        这几天,看不到太阳!!
  • Tramp dog

    2008-01-03 12:33:55

       马路边,喧嚣的早晨让早点生意显得热闹红火,上班族们无一不是行色匆匆,唯恐赶不上一班车迟到个3,5分钟扣它个三五十块争议薪水,正是这匆忙,让边上的垃圾堆里留下了许多延续生命必需的----食物,一条流浪狗,机油色的肮脏毛发上还残留着清晨露水的洗礼,嘴角的胡须显示了他的狗龄已经到了垂暮之年,历历在目的伤疤述说着他一生的辉煌和屈辱,他不像其他流浪狗那样眼睛中透着惶恐,相反,他的眼中透着尊严,一种追求生存的,原始的尊严。
       我不禁为之一怔,从人眼中现在都很难看到这种眼神,安逸的生活让我们缺少磨难的历练,也许我们都已经适应不了逆境生存的考验,而他,一生中也许有过安逸,有过被人抚养,无忧无虑的过去,但更多的是风雨,饥饿,死亡的威胁。
       看着他渐渐的远去,我有点朦胧的感觉,在狗的世界里,你才是实实在在的存在,一个为了生存而不断“挣扎“ 的实体!

512/3<123>

数据统计

  • 访问量: 42368
  • 日志数: 55
  • 图片数: 1
  • 建立时间: 2007-11-27
  • 更新时间: 2008-08-23

RSS订阅

Open Toolbar