“未来的世界:方向比努力重要,能力比知识重要,健康比成绩重要,生活比文凭重要,情商比智商重要! ”    ——清华大学校长留给毕业生的一段话

发布新日志

  • Loadrunner脚本开发之AJAX视频

    云层 发布于 2010-01-22 13:22:29

    以google搜索的提示ajax作为基础,介绍了针对这种情况下的AJAX脚本开发思路和案例

    tudou地址:

    http://www.tudou.com/programs/view/tB5iUma4jt0/

    播放列表地址:

    http://www.tudou.com/playlist/playindex.do?lid=7760429&iid=45198860&cid=25

    下载地址:

    ftp://user1:user1@www.atstudy.com/cloud/ajax.swf

     

    关键技术:

    ajax原理,http协议捕获,录制选项调整适应ajax,关联获得ajax,参数小应用

    脚本如下:

     

    Action()
    {

     web_url("www.google.cn",
      "URL=http://www.google.cn/",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=",
      "Snapshot=t1.inf",
      "Mode=HTTP",
      LAST);

     

     web_url("porridgeday10-hp.gif",
      "URL=http://www.google.cn/logos/porridgeday10-hp.gif",
      "Resource=1",
      "RecContentType=image/gif",
      "Referer=http://www.google.cn/",
      "Snapshot=t2.inf",
      LAST);

     web_url("cn_icp.gif",
      "URL=http://www.google.cn/intl/zh-CN_cn/images/cn_icp.gif",
      "Resource=1",
      "RecContentType=image/gif",
      "Referer=http://www.google.cn/",
      "Snapshot=t3.inf",
      LAST);


     web_url("4nkMpw1Qe4k.js",
      "URL=http://www.google.cn/extern_js/f/CgV6aC1DThICY24rMAo4UEACLCswDjgLLCswETgTLCswFjgXLCswFzgFLCswGDgFLCswGTgSLCswJTjJiAEsKzAmOAksKzAnOAQsKzA8OAIsKzBFOAEs/4nkMpw1Qe4k.js",
      "Resource=1",
      "RecContentType=text/javascript",
      "Referer=http://www.google.cn/",
      "Snapshot=t4.inf",
      LAST);

     web_url("favicon.ico",
      "URL=http://www.google.cn/favicon.ico",
      "Resource=1",
      "RecContentType=image/x-icon",
      "Referer=",
      "Snapshot=t5.inf",
      LAST);

     web_url("nav_logo7.png",
      "URL=http://www.google.cn/images/nav_logo7.png",
      "Resource=1",
      "RecContentType=image/png",
      "Referer=http://www.google.cn/",
      "Snapshot=t6.inf",
      LAST);

     web_url("toolbar_animation_20090618.png",
      "URL=http://www.google.cn/intl/zh-CN/images/toolbar_animation_20090618.png",
      "Resource=1",
      "RecContentType=image/png",
      "Referer=http://www.google.cn/",
      "Snapshot=t7.inf",
      LAST);


     web_url("csi",
      "URL=http://www.google.cn/csi?v=3&s=webhp&action=&e=17259,22766,23276,23309,23337&ei=hyBZS-KsBMyTkAWDpLzrBA&rt=prt.234,xjsls.281,ol.734,xjses.734,xjsee.812,xjs.890",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=http://www.google.cn/",
      "Mode=HTTP",
      LAST);


    //lr_save_var()
     web_reg_save_param("searchid",
      "LB=[\"",
      "RB=\",",
      "Ord=ALL",
      "Search=Body",
      LAST);

     web_url("search_7",
      "URL=http://www.google.cn/complete/search?hl=zh-CN&xhr=t&q=loadrunner&cp=10",
      "Resource=1",
      "RecContentType=application/json",
      "Referer=http://www.google.cn/",
      "Snapshot=t14.inf",
      LAST);

        lr_save_string(lr_paramarr_random("searchid"),"temp");

     lr_think_time(6);

     web_url("search_8",
      "URL=http://www.google.cn/search?hl=zh-CN&source=hp&q={temp}&aq=2&oq=loadrunner",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=http://www.google.cn/",
      "Snapshot=t15.inf",
      "Mode=HTTP",
      LAST);

     web_url("nav_logo7.png_2",
      "URL=http://www.google.cn/images/nav_logo7.png",
      "Resource=1",
      "RecContentType=image/png",
      "Referer=http://www.google.cn/search?hl=zh-CN&source=hp&q=loadrunner+%E6%98%AF%E4%BB%80%E4%B9%88&aq=2&oq=loadrunner",
      "Snapshot=t16.inf",
      LAST);

     web_url("gen_204",
      "URL=http://www.google.cn/gen_204?mgmhp=shp1&ct=v&cd=false",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=http://www.google.cn/search?hl=zh-CN&source=hp&q=loadrunner+%E6%98%AF%E4%BB%80%E4%B9%88&aq=2&oq=loadrunner",
      "Mode=HTTP",
      LAST);

     web_url("csi_2",
      "URL=http://www.google.cn/csi?v=3&s=web&action=&e=17259,22766,23265,23276,23309,23337&ei=kCBZS5elFM6OkQXJttj2BA&rt=prt.343,xjses.405,xjsee.452,xjsls.452,xjs.577,ol.858",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=http://www.google.cn/search?hl=zh-CN&source=hp&q=loadrunner+%E6%98%AF%E4%BB%80%E4%B9%88&aq=2&oq=loadrunner",
      "Mode=HTTP",
      LAST);

     return 0;
    }

     

  • 移动网关对HTTP信令头域格式的要求

    nb_bull 发布于 2010-02-24 16:22:28

    前面的测试针对移动网关对HTTP头识别处理已经出现了几次比较麻烦的问题,这里简单做下总结。

    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域 值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
      典型的请求消息:

      GET http://download.microtool.de:80/somedata.exe
      Host: download.microtool.de
      Accept:*/*
      Pragma: no-cache
      Cache-Control: no-cache
      Referer: http://download.microtool.de/
      User-Agent:Mozilla/4.04[en](Win95;I;Nav)
      Range:bytes=554554-

    请求部分一般问题不大,只是在而测试的时候要注意是否支持GET和POST两种方式的兼容。

      典型的响应消息:

      HTTP/1.0200OK
      Date:Mon,31Dec200104:25:57GMT
      Server:Apache/1.3.14(Unix)
      Content-type:text/html
      Last-modified:Tue,17Apr200106:46:28GMT
      Etag:”a030f020ac7c01:1e9f”
      Content-length:39725426
      Content-range:bytes554554-40279979/40279980

    现在发现的几个问题都是在响应部分,必须注意有两点:

    1.content-length和content-type必须要带,不然很多地区的运营商网关会无法识别,导致手机终端可以正常发包到我们的服务端,但我们的服务端响应无法正常返回到终端的情况;

    2.除了消息头外,我们有些服务的响应是不带消息体的,这种情况测试中也发现有问题,最好的解决办法就是带了一段附带的消息体(即使是无效的)。

     

    再简单介绍下content-type和content-length的概念:

    Content-Type实体头用于向接收方指示实体的介质类型,指定HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型。此参数是与请求中Accept字段对应的。

    Content-Length表示实际传送的字节数。

    由于一些地区的运营商网关对HTTP头的要求和限制比较严格,不制定类型会出现HTTP无法解析的情况,导致了我们服务异常的出现,由于各个开发人员的编程习惯不同,也没有对头域格式进行统一,上面的问题还是比较普遍的存在,各位同学以后测试的时候注意检查判断。

  • 一个网站安全测试案例

    alitester 发布于 2009-07-12 12:45:30

    前几天一个关于网站安全的紧急发布, 这里分享一下测试过程.
    by六太@20090712

    紧急发布的内容如下.
    为了防止某些钓鱼网站, 服务器针对某些页面的referrer进行了校验, 必须是https以及其他一些关键字组成, 否则判定为钓鱼网站, 这样针对referrer的初级校验, 能够防止绝大部分低级钓鱼. 但是由于有一些页面referrer为空值, 而程序中认为空值也是非法的, 所以的导致了部分用户无法付款, 所以紧急发布的内容就是, 如果referrer为空, 默认无风险. 
    代码实现起来容易, 但是测试比较困难, 因为你无法用firebug去修改referrer值, 因为referrer是只读属性. 使用中间页面跳转, 成本太大. 
    而loadrunner就非常轻易的就解决了这个测试难点, 脚本录制好后, 你很容易发现, referrer值就在脚本里面, 你想改什么就改成什么. 

    web_url("Test",
      "URL=https://www.gmail.com/",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=https://www.gmail.com",
      "Snapshot=t1.inf",
      "Mode=HTTP",
      LAST);

  • loadrunner采用socket和HTTP协议交叉实现测试需求

    nb_bull 发布于 2009-06-24 15:48:31

    这次要测试的是一个下载平台的项目,信令采用在HTTP协议里封装自定义协议的方式实现,由于自定义信令较为复杂,初始采用了LR中的socket方式来编写接口测试脚本,如下所示:

    #include "lrs.h"

    Action()
    {

     int ActucalNumber;
     int code;
     int rspcode;

     lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=172.16.11.101:9999",  LrsLastArg);
     lrs_send("socket0", "buf0", LrsLastArg);
     lrs_receive("socket0", "buf1", LrsLastArg);
     ActucalNumber=lrs_get_last_received_buffer_size("socket0");   
     lrs_save_param_ex("socket0","received",NULL,0,ActucalNumber,"ascii","param1");
     lrs_save_searched_string("socket0",NULL,"param2","LB/BIN=\\xb9\\x00",NULL,1,29,4);      //搜索protocol-id\xb9\x00字符串,并截取该字符串出现后固定位数的特殊字符串code.
     lrs_save_searched_string("socket0",NULL,"param3","LB/BIN=\\xb9\\x00",NULL,1,37,4);      //搜索protocol-id\xb9\x00字符串,并截取该字符串出现后固定位数的特殊字符串respcode.
     lrs_hex_string_to_int(lr_eval_string("<param2>"),strlen(lr_eval_string("<param2>")),&code);
     lrs_hex_string_to_int(lr_eval_string("<param3>"),strlen(lr_eval_string("<param3>")),&rspcode);
     lrs_send("socket0", "buf2", LrsLastArg);
     lrs_close_socket("socket0");

     lr_output_message("-----------------------------------INFO---------------------------------------");
     lr_output_message("The length of resp is %d", ActucalNumber);
     lr_output_message("The content of resp is %s", lr_eval_string("<param1>"));
     lr_output_message("The content of code is %s", lr_eval_string("<param2>"));
     lr_output_message("The content of rspcode is %s", lr_eval_string("<param3>"));
     lr_output_message("code is %i",code);
     lr_output_message("rspcode is %i",rspcode);

     return 0;
    }

    data.ws部分:

    ;WSRData 2 1
    send  buf0 244
     "POST / HTTP/1.1\r\n"
     "User-Agent: Jakarta Commons-HttpClient/3.1\r\n"
     "Host: 172.16.11.101:9999\r\n"
     "Content-Length: 102\r\n"
     "Content-Type: application/saip\r\n"
     "\r\n"

     "婍滙~2\xb9\x00"          //protocol-id(8)
     "\x01\x00\x00\x66"       //basic ver+length(4)
     "\x10\x60\x01\x2c"       //srcmodule+dstmodule(4)
     "1234567890123456"       //transaction(16)
     "\x00\x00\x00\x00"       //type+reserved(4)
     "\x00\x01\x8e\x72"       //code=102002
     "\x00\x00\x00\x3a"       //datalength(4)

     "\x00\x01"               //count
     "\x02"                   //type
     "\x00\x00\x00\x00"       //ver=0
     "\x00\x04\x97\xef"       //id=301039
     "\x00\x00\x00\x00"       //offset
     "\x00\x02\x9b\xe5"       //fileSize
     "\x00\x02\x9b\xe5"       //Size
     "./applist2/app/200902411741329.mrp\x00"    //fileURL

    recv  buf1 171194

    脚本上与前面一篇socket协议脚本不同之处是使用了lrs_save_searched_string函数,在服务端返回的数据包里搜索自定义协议标识protocol-id,并以此为基础,截取后面包中我们所需要的字段,转换后打印出来,从而实现了自定义接口测试的需求。

    在功能测试后进行性能测试,为保证性能测试的效率,需去除各种逻辑判断语句,而只保留,打开冰箱门,把大象塞进去,看看大象的反应,关上冰箱门这四部分。

    #include "lrs.h"

    Action()
    {

    lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=172.16.11.155:9999",  LrsLastArg);

    lrs_send("socket0", "buf0", LrsLastArg);
    lrs_receive("socket0", "buf1", LrsLastArg);

    lrs_close_socket("socket0");
    return 0;
    }

    当然也可以采用HTTP协议方式实现该功能,在后面的性能测试中,因为现有的license采用socket协议只能实现一台机器100Vuser的并发,我们该脚本略做修改采用了HTTP协议方式编写,从而实现了1000Vuser的HTTP并发。

  • 特殊汉字的输入测试

    QIYUE 发布于 2011-12-07 10:43:32

    眆、贇,文本输入测试时未曾想到特定汉字会报错,会显示乱码!
    测试文本输入时考虑了特殊字符、考虑了边界值等等,但是就是从未考虑过特定的汉字!
    归根到底还是经验不足,引以为戒!

    输入:
    输入员工姓名包含(眆、贇)这两个字,能够正常显示,此时点击【保存】
    结果:
    文字无法正确显示,显示为乱码
  • Loadrunner中对中文进行UTF-8转码的探索

    nb_bull 发布于 2010-02-22 15:20:28

    这是一个HTTP接口测试中经常会碰到的问题,目前的服务器采用的都是UTF-8编码方式,而我们的客户机Windows系统一般默认采用的编码方式是GBK,这正是我们采用录制方式的时候会发现许多中文乱码的原因。

    Loadrunner录制的时候可以通过在Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8的设置规避(其实也只是部分规避),下面我们讨论在手写测试脚本时如何解决UTF-8转码的问题。

    实践一:在脚本中直接采用中文明文进行请求

      web_custom_request("web_custom_request",
      "URL=http://172.16.4.191/list?id=环球影院",
      "Method=GET",
      "TargetFrame=",
      "Resource=0",
      "Referer=",
      "Body=",
      LAST);
    结果:服务端返回404错误,找不到相应的资源id,明显服务端不能正确响应非UTF8编码方式的请求。

    实践二:

    为解决这个问题,最关键的是要把本地GBK编码的汉字转换成UTF-8编码格式的信息,为此我们引进loadrunner自带的编码函数lr_convert_string_encoding

    lr_convert_string_encoding

    Converts a string to a different encoding.

    C Language

    int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);

    Example       See Also

    sourceString
    The string to convert
    fromEncoding
    The encoding of the sourceString
    toEncoding
    The encoding to convert of the string saved in parameter paramName
    paramName
    The name of the parameter in which the destination string will be saved

    lr_convert_string_encoding converts a string encoding between the following encodings: System locale, Unicode, and UTF-8. The function saves the result string, including its terminating NULL, in the parameter paramName.

    lr_convert_string_encoding is added manually to a script. when needed. It is not recorded.

    Possible values for 'fromEncoding' and 'toEncoding' :

    Constant
    Value
    LR_ENC_SYSTEM_LOCALE
    NULL
    LR_ENC_UTF8
    "utf-8"
    LR_ENC_UNICODE
    "ucs-2"
     
     
    根据函数说明,我们编写测试脚本如下
     lr_convert_string_encoding( "环球影院",
      LR_ENC_SYSTEM_LOCALE,
      LR_ENC_UTF8,
      "str" );
     web_custom_request("web_custom_request",
      "URL=http://172.16.4.191/list?id={str}",
      "Method=GET",
      "TargetFrame=",
      "Resource=0",
      "Referer=",
      "EncType=text/xml;charset=UTF-8",
      "Body=",
      LAST);
     
    使用lr_convert_string_encoding函数,将中文转换成UTF-8编码以后,作为参数传递给请求,并发送。
    测试结果:仍然返回404错误,查看loadrunner日志信息“环球影院”已经正确转换成UTF8编码方式,那为什么还是请求失败呢?
    再次查看日志如下
    Action.c(7): t=825ms: 223-byte request headers for "http://172.16.4.191/list?id=鐜悆褰遍櫌" (RelFrameId=1)
    Action.c(7):     GET /list?id=鐜悆褰遍櫌\x00 HTTP/1.1\r\n
    Action.c(7):     Content-Type: text/xml;charset=UTF-8\r\n
    Action.c(7):     User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows)\r\n
    Action.c(7):     Accept-Encoding: gzip, deflate\r\n
    Action.c(7):     Accept: */*\r\n
    Action.c(7):     Connection: Keep-Alive\r\n
    Action.c(7):     Host: 172.16.4.191\r\n
    Action.c(7):     \r\n
    发现在请求地址“/list?id=鐜悆褰遍櫌”后面还带了一个\x00,这正是lr_convert_string_encoding函数说明中标红的说明:The function saves the result string, including its terminating NULL, in the parameter paramName.
    也就是说,我转换成UTF-8之后,如果直接作为变量传到代码之中的话,在最后的字符串之中,会多出来一个“NULL”,C语言中NULL是一个字符串的结束,而正是这个null字节的存在导致了服务端识别id出错。
     
    实践三:
     char tmp[50];
     lr_convert_string_encoding( "环球影院",
      LR_ENC_SYSTEM_LOCALE,
      LR_ENC_UTF8,
      "str" );  
     strcpy(tmp,lr_eval_string("{str}"));
    lr_log_message("str is %s",tmp);
     lr_save_string(tmp,"sorvalue");
     web_custom_request("web_custom_request",
      "URL=http://172.16.4.191/list?id={sorvalue}",
      "Method=GET",
      "TargetFrame=",
      "Resource=0",
      "Referer=",
      "Body=",
      LAST);
    通过lr_eval_string函数取参数值时会自动去掉\x00,测试结果正常,正确返回HTTP响应内容。
  • [转]英文简历常用词汇

    aries1979 发布于 2007-05-27 13:48:49

    个人品质常用词汇

    able 有才干的,能干的        adaptable 适应性强的
    active 主动的,活跃的      aggressive 有进取心的
    ambitious 有雄心壮志的      amiable 和蔼可亲的
    amicable 友好的          analytical 善于分析的
    apprehensive 有理解力的 aspiring 有志气的,有抱负的
    audacious 大胆的,有冒险精神的 capable 有能力的,有才能的

    careful 办理仔细的      candid 正直的
    competent 能胜任的          constructive 建设性的
    cooperative 有合作精神的 creative 富创造力的
    dedicated 有奉献精神的      dependable 可靠的
    diplomatic 老练的,有策略的 disciplined 守纪律的
    dutiful 尽职的 w       ell--educated 受过良好教育的
    efficient 有效率的           energetic 精力充沛的
    expressivity 善于表达       faithful 守信的,忠诚的
    frank 直率的,真诚的       generous 宽宏大量的
    genteel 有教养的            gentle 有礼貌的
    humorous 有幽默           impartial 公正的
    independent 有主见的      industrious 勤奋的
    ingenious 有独创性的      motivated 目的明确的
    intelligent 理解力强的 learned 精通某门学问的
    logical 条理分明的      methodical 有方法的
    modest 谦虚的           objective 客观的
    precise 一丝不苟的       punctual 严守时刻的
    realistic 实事求是的       responsible 负责的
    sensible 明白事理的       sporting 光明正大的
    steady 踏实的           systematic 有系统的
    purposeful 意志坚强的 sweet-tempered 性情温和的
    temperate 稳健的           tireless 孜孜不倦的
    教育程度常用词汇
    education 学历          educational history 学历
    educational background 教育程度 curriculum 课程
    major 主修 minor 副修
    educational highlights 课程重点部分         curriculum included 课程包括
    specialized courses 专门课程 courses taken 所学课程
    special training 特别训练    social practice 社会实践
    part-time jobs 业余工作     summer jobs 暑期工作
    vacation jobs 假期工作     refresher course  进修课程
    extracurricular activities 课外活动               physical activities 体育活动
    recreational activities  娱乐活动              academic activities 学术活动
    social activities 社会活动 rewards 奖励
    scholarship 奖学金 excellent League member 优秀团员
    excellent leader 优秀干部 student council 学生会
    off-job training 脱产培训 in-job training 在职培训
    educational system 学制 academic year 学年
    semester 学期(美) term 学期(英)
    supervisor 论文导师 pass 及格
    fail 不及格 marks 分数
    examination 考试 degree 学位
    post doctorate 博士后 doctor(Ph.D) 博士
    master 硕士       bachelor 学士
    graduate student 研究生 abroad student 留学生
    abroad student 留学生 undergraduate 大学肆业生
    government-supported student  公费生 commoner 自费生
    extern 走读生        intern 实习生
    prize fellow 奖学金生   boarder 寄宿生
    graduate 毕业生     guest student 旁听生(英)
    auditor 旁听生(美) day-student 走读生

    工作经历常用词汇

    work experience 工作经历 occupational history 工作经历
    professional history 职业经历 specific experience 具体经历
    responsibilities 职责      second job 第二职业
    achievements 工作成就,业绩 administer 管理
    assist 辅助          adapted to 适应于
    accomplish 完成(任务等) appointed 被认命的
    adept in 善于 analyze 分析
    authorized 委任的;核准的 behave 表现
    break the record 打破纪录     breakthrough 关键问题的解决
    control 控制            conduct 经营,处理
    cost 成本;费用        create 创造
    demonstrate 证明,示范 decrease 减少
    design 设计            develop 开发,发挥
    devise 设计,发明        direct 指导
    double 加倍,翻一番       earn 获得,赚取
    effect 效果,作用      eliminate 消除
    enlarge 扩大            enrich 使丰富
    exploit 开发(资源,产品)        enliven 搞活
    establish 设立(公司等);使开业 evaluation 估价,评价
    execute 实行,实施       expedite 加快;促进
    generate 产生 good at  擅长于
    guide 指导;操纵       improve 改进,提高
    initiate 创始,开创       innovate 改革,革新
    invest 投资          integrate    使结合;使一体化
    justified 经证明的;合法化的     launch 开办(新企业)
    maintain 保持;维修      modernize 使现代化
    negotiate 谈判      nominated 被提名;被认命的
    overcome 克服        perfect 使完善;改善
    perform 执行,履行     profit 利润
    be promoted to 被提升为    be proposed as   被提名(推荐)为
    realize 实现(目标)获得(利润) reconstruct 重建
    recorded 记载的            refine 精练,精制
    registered 已注册的 regenerate 更新,使再生
    replace 接替,替换 retrieve 挽回
    revenue 收益,收入 scientific 科学的,系统的
    self-dependence 自力更生 serve 服务,供职
    settle 解决(问题等) shorten 减低……效能
    simplify 简化,精简 spread 传播,扩大
    standard 标准,规格 supervises 监督,管理
    supply 供给,满足 systematize 使系统化
    test 试验,检验 well-trained 训练有素的
    valuable 有价值的        target 目标,指标
    working model 劳动模范 advanced worker 先进工作者


    个人资料常用词汇
    name 姓名 in. 英寸
    pen name 笔名 ft. 英尺
    alias 别名 street 街
    Mr. 先生 road 路
    Miss 小姐 district 区
    Ms (小姐或太太) house number 门牌
    Mrs. 太太 lane 胡同,巷
    age 年龄 height 身高
    bloodtype 血型 weight 体重
    address 地址 born 生于
    permanent address 永久住址       birthday 生日
    province 省 birthdate 出生日期
    city 市 birthplace 出生地点
    county 县 home phone 住宅电话
    prefecture 专区     office phone 办公电话
    autonomous region 自治区     business phone 办公电话
    nationality 民族;国籍 current address 目前住址
    citizenship 国籍    date of birth 出生日期
    native place 籍贯     postal code 邮政编码
    duel citizenship 双重国籍    marital status 婚姻状况
    family status 家庭状况       married 已婚
    single 未婚           divorced 离异
    separated 分居       number of children 子女人数
    health condition 健康状况        health 健康状况
    excellent (身体)极佳     short-sighted 近视
    far-sighted 远视       ID card 身份证
    date of availability  可到职时间 membership 会员、资格
    president 会长 vice-president 副会长
    director 理事 standing director 常务理事
    society 学会 association 协会
    secretary-general 秘书长 research society 研究会

    应聘职位

    objective 目标       position desired 希望职位
    job objective 工作目标 employment objective 工作目标
    career objective 职业目标   position sought 谋求职位
    position wanted 希望职位 position applied for  申请职位

    离职原因

    for more specialized work 为更专门的工作             for prospects of promotion 为晋升的前途
    for higher responsibility 为更高层次的工作责任        for wider experience 为扩大工作经验
    due to close-down of company 由于公司倒闭        due to expiry of employment 由于雇用期满
    sought a better job 找到了更好的工作             to seek a better job 找一份更好的工作


  • TCP/IP协议学习之实例ping命令学习笔记(三)

    caicai1724 发布于 2007-08-08 15:36:36

     

    前文请看:TCP/IP协议学习之实例ping命令学习笔记(二)

    Q:广播是什么原理?广播地址又是什么?这次的实例中,广播地址是多少?
    A:一个主机要向网上的所有其他主机发送帧,这就是广播。
    主机对由信道传送过来帧的过滤过程:网卡查看由信道传送过来的帧,确定是否接收该帧,若接收后就将它传往设备驱动程序。通常网卡仅接收那些目的地址为网卡物理地址或广播地址的帧。
    一共有四种I P广播地址
    1.受限的广播:受限的广播地址是255.255.255.255。
    2.指向网络的广播:地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。
    3.指向子网的广播:主机号为全1且有特定子网号的地址。作为子网直接广播地址的I P地址需要了解子网的掩码。
    4.指向所有子网的广播:也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。
    在本实例中,只能看出广播地址的MAC地址是ff:ff:ff:ff:ff:ff,而无法看出IP地址属于哪一种广播地址。待解决。如下图

    参考资料:http://www.cnpaf.net/Class/TCPANDIP/0532918532733861.html

    Q:ARP请求和应答包的格式什么?包含哪些内容?
    A:书中关于ARP格式的如下图所示:

    其中:帧类型表示后面数据的类型。硬件类型表示硬件地址的类型。协议类型表示要映射的协议地址类型。硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。op是操作字段,指出四种操作类型:A R P请求(值为1)、A R P应答(值为2)、R A R P请求(值为3)和R A R P应答(值为4)。其他字段很好理解。
    从Ethereal工具中分别截取ARP请求和应答包内容,如下图:

    和ARP格式图示相比较:
    以太网首部:以太网目的地址是广播地址(全1),以太网源地址是本机的MAC地址,帧类型是ARP的标志值0x0806。
    28字节ARP请求/应答:硬件类型是以太网标志值0001,协议类型是I P地址标志值0800,硬件地址长度是6,协议地址长度是4,操作字段是ARP请求标志值0001,发送端以太网地址是本机的MAC地址,发送段IP地址是本机的IP地址(176),目标以太网地址还没有获取到,所以为全0,目标IP地址是远程机的IP地址(5)。


    和ARP格式图示相比较:
    以太网首部:以太网目的地址是本机的MAC地址,以太网源地址是远程机的MAC地址,帧类型是ARP的标志值0x0806。Trailer是什么?待解决。
    28字节ARP请求/应答:硬件类型是以太网标志值0001,协议类型是I P地址标志值0800,硬件地址长度是6,协议地址长度是4,操作字段是ARP应答标志值0002(与ARP请求区别开来),发送端以太网地址是远程机的MAC地址,发送端IP地址是远程机的IP地址(5),目标以太网地址是本机的MAC地址,目标IP地址是本机的IP地址(176)。
    由此看来,ARP请求和应答包非常相似,标志性的区别在操作字段的不同。

    Q:为什么需要在本机DOS中先运行arp –d 清除arp缓存,才能抓到ARP协议包?
    A: A R P高效运行的关键是由于每个主机上都有一个A R P高速缓存。这个高速缓存存放了最近I n t e r n e t地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为2 0分钟,起始时间从被创建时开始算起。可以用a r p命令来检查ARP高速缓存。参数-a的意思是显示高速缓存中所有的内容,如下图所示:其中包括了远程机(5)的MAC映射记录。

    一般情况下,当系统收到A R P请求或发送A R P应答时,都要把请求端的硬件地址和I P地址存入A R P高速缓存。在获取目标机的MAC地址时,会先从ARP高速缓冲中查找是否存在,如果存在,则可以不用进行ARP请求过程。为了确保可以抓到ARP的请求数据包,因此,先用命令arp –d清除掉本地的MAC地址映射。

    下文请看:TCP/IP协议学习之实例ping命令学习笔记(四)

     

  • 在EXCEL里面添加超联接(hyperlink)的方法

    风过无息 发布于 2006-12-12 10:35:58

    Sub ReportInformation(filename)
    ' create the Excel object
    Set ExcelObj = CreateObject("Excel.Application")
    ' add a new Workbooks and a new Sheet
    ExcelObj.Workbooks.Add
    Set NewSheet = ExcelObj.Sheets.Item(1)
    NewSheet.Name = "Page Information"
     ' customize the Sheet layout
    NewSheet.Cells(1,1).Value = "Tom"
    NewSheet.Cells(2,1).Value = "Sohu"
    NewSheet.Hyperlinks.Add NewSheet.Cells(1,1), "http://www.tom.com/"
    NewSheet.Hyperlinks.Add NewSheet.Cells(2,1), "http://www.sohu.com/"
     ' save the Excel file
          ExcelObj.ActiveWorkbook.SaveAs filename
          ' close the application and clean the object
          ExcelObj.Quit
          Set ExcelObj = Nothing
       End Sub
    call ReportInformation("c:\test.xls")

     


     

Open Toolbar