京东测试工程师 - 手Q微信事业部

1、自我介绍

2、聊以前公司的工作内容,因为是通信设备商,所以大部分工作都不相关,只是用Python写过工具,就出了一道题。

有1G的log文件,里面有user = ‘xxxx’,password = ‘xxxx’等字段,现在需要把里面所有的以上字段提取出来保存成文本文件

这个很简单,之前写的工具就是做的这个工作,遍历整个文件,正则表达式提取字段,然后写入文件。

面试官:是直接打开文件么,打开之后内容都保存在哪里

我:是,保存到内存里了吧,我之前做的工具处理的log也都是差不多1G左右,所以工具运行时电脑内存飙升,电脑出现卡顿

面试官:那如果是10G的log呢,有没有想过怎么处理

我:这个没处理过,也没考虑过怎么优化

面试官:好

结束

3、面试官:TCP/IP熟悉吧

我:上学学过,最近在看

面试官:好,在京都购过物吧,恩,那登陆京东首页,在浏览器输入www.jd.com的时候一直到页面全部显示京东首页,这个过程是什么样的,能描述一下么?

我:忘了,HTTP这个还没看到,不过有进行TCP建立连接

面试官:嗯,好,那首先是什么过程

我:TCP建立连接

面试官:TCP是哪一层的

我:传输层

面试官:那不是应该先应用层处理么?

我:额。。。。。

面试官:平时工作中有用到Linux吗?

我:用,我们的服务器也是搭建在Linux上的,也知道些常用的命令

面试官:平时都在上面做什么

我:远程,版本升级,日志提取等,

4、面试官:好,那TCP/IP的几层协议还记着吧

我:记得,物理层,数据链路层,网络层,传输层,应用层这是五层协议,七层OSI协议中间加上表示层,会话层

5、面试官:好,出一道小编程题,对abcde字符串进行全排列并输出结果

我:(现场就写成下面这样,回来运行下好像不行)

def sort_two(a,b):
    print "%s%s" %(a,b)
    print "%s%s" %(b,a)

def seperate(x):
    list_x = list(x)
    #print list_x
    for i in range(len(list_x)):
        list_a = list_x[i:i+1]
        list_b = list_x[i+1:]
        sort_two(list_a,list_b)
        if len(list_a)>1:
            seperate(str(list_a))
        if len(list_b)>1:
            seperate(str(list_b))


if __name__ == '__main__':
    seperate('abcde')

面试官:说下你的思路 我:两个对象的全排序最好排,左右一颠倒即可,为此定义一个函数,然后后面就是采用递归的调用自身进行字符串切割成两部分,。。。。。。

后面就是我俩简单交流了下是否可行。。。

6、面试官:无线鼠标用过吧,设计用例来测试下无线鼠标

我:1、测试左右按键2、测试鼠标移动3、测试重量4、测试手感5、测试滚轮儿6、测试电池耗电7、不同电脑的兼容性,当时就想了这些,面试官就说ok,后来想想无线鼠标最应该测的还有无线通讯距离测试啊,测试材质防摔能力,内部功能防震能力,在不同介质上的滑动体验等

7、后面问了是否有收到其他的offer,回答有两家。问有没有腾讯等的大公司的啊,回答没有,腾讯电面好几次都没过,招银最后面没过,都是没有相关经验。最近在看什么书啊。我,鸟哥的Linux,TCP/IP等。最后面试官说,你确实没有相关工作经验,对于这份工作你觉得你有什么优势,或者说你能说出几点来打动我,(自由发挥)