100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 09今日头条测试开发校招面经

09今日头条测试开发校招面经

时间:2019-11-15 16:14:15

相关推荐

09今日头条测试开发校招面经

一面

1.手写斐波拉契数列

public static int fibonacci(int n){ if(n <= 2){ return 1; }else{ return fibonacci(n-1) + fibonacci(n-2); } }

2.sql。打印每个学生的最高分,每个学生有多个成绩。table:courseid username score

a) select * from table group by username having score=max(score)

3.linux命令:

a) 一个文件夹下有多少个文件

ls -lR|grep "^-"| wc -l //R代表子目录,"^d"表示目录,"^-"表示文件,wc -l表示统计输出的行数。ls -lR HB*/|grep "^-"| wc -l //HB开头的文件下所有文件个数ls -l|grep "^d"| wc -l //当前文件下所有文件夹个数

b) 清空文件夹下的所有文件内容,不是删除 >重写 >>追加

c) 查看端口号是否被占用

lsof -i:80 //显示所有打开80端口的进程,lsof(list open files)是一个列出当前系统打开文件的工具netstat -anp|grep 80 //显示所有占用80端口的进程netstat -a //列出所有端口lsof -p 30297 //显示哪些文件被pid为30297的进程打开

4.抽象类和接口的联系和区别

a) 联系

i. 抽象类的抽象方法和接口的所有方法都是有一个方法头,没有具体实现。

ii. 都不能被实例化,即通过new生成一个对象

iii. 一个类继承抽象类或者接口,都必须实现抽象类的抽象方法和接口的所有方法

b) 区别

i. 抽象类单继承,接口多继承

ii. 抽象类中可以有具体方法,接口中全是抽象方法

iii. 继承抽象类的类可以不实现抽象类的抽象方法,只需要将此类定义为abstract即可,而实现接口的非抽象类必须重写其方法。

iv. 抽象类的成员变量是普通变量,接口的成员变量是不可变常量。

v. 抽象类的抽象方法可以是public,protected,default类型,而接口的方法只能是public

c) 接口是抽象类的延伸,java了保证数据安全是不能多重继承的,也就是说继承只能存在一个父类,但是接口不同,一个类可以同时实现多个接口,不管这些接口之间有没有关系,所以接口弥补了抽象类不能多重继承的缺陷,但是推荐继承和接口共同使用,因为这样既可以保证数据安全性又可以实现多重继承。

5.怎么做的自动化测试

a) 主要包括功能测试(Web端到端测试)codeceptjs+webdriverIO和接口测试mocha+supertest

6.Git用过吗?如何切换分支?如何暂存工作台?

a) 切换分支 git checkout branch_name

b) 暂存工作区 git stash

c) 取出工作区 git stash pop

- 用过Jenkins吗?怎么配置的,如何查看报告?除了发邮件通知还有什么通知方法?

a) 报告需要项目跑完能输出报告(json/html),然后利用插件优美展示。

b) 在Jenkins上安装插件可以实现多种通知方式:钉钉,邮件

7.测试一个手机登陆界面

a) 功能测试:有网断网、输入正确、输入错误、输入空、中文特殊字符、长度限制、验证码有效时长、密码存储是否加密、是否有提示友好

b) 安全测试:sql注入、不登录能否操作、禁止输入脚本防XSS攻击、用户名密码传输时是否加密

c) 性能测试:

i. 单用户登录系统的响应时间是否符合”3-5-8”原则

ii. 用户数在临界点时并发登录是否还能符合”3-5-8”原则

iii. 压力:大量并发用户登录,系统的响应时间是多少?系统会出现宕机、内存泄露、cpu饱和、无法登录吗?

iv. 稳定性: 系统能否处理并发用户数在临界点以内连续登录N个时的场景?

d) 页面测试:不同手机控件位置、页面美观简洁

e) 其他测试:输错超3次、是否支持粘贴、(session 过期)

8.xml文件如何可视化更强

9.get/post区别

a) 发送参数的方式不同。GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,这种方式不安全;POST把提交的数据则放置在是HTTP包的包体中。

b) 可传参数长度不同。GET方式提交的数据有限制,理论上POST没有限制,可传较大量的数据。其实HTTP没有对GET请求进行限制,而是浏览器对url长度有限制。

c) 服务器获取参数方式不同。对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

d) 总结:Get是向服务器发索取数据的一种请求,数据在URL中,而Post是向服务器提交数据的一种请求,数据在FORM(表单)中,Method默认为”GET”,实质上,GET和POST只是发送参数的机制不同,并不是一个取一个发!Get也能修改数据,POST也能查询数据,只是HTTP规范建议GET用于查询因为效率更高,POST用于修改因为更安全。GET(幂等),POST(非幂等),PUT,DELETE查改增删。POST可以完成所有的操作,引入PUT,DELETE是为了语义化,是指使用语义恰当的标签,使规范有良好的结构,能够让人和机器都容易理解。

二面

1.手写非递归翻转二叉树,二叉树的镜像二叉树

2.linux:打印文件a.log中所有包含error的行数,字符数(error算一个字符)

grep error a.log | wc -lgrep error a.log | wc -m

3.常见的HTTP状态码。

a) 200 请求成功

b) 301 资源被永久转移到其他URL

c) 403 服务器拒绝响应请求

d) 404 请求的资源不存在

e) 500 内部服务器错误

f) 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求

g) 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。

**4.sql。**user:uid uname,project:pid pname,u_p: uid pid打印出姓名为ming的所有pid和pname,table1特别大。

a) select pid,pname from project,u_p

b) where uid in(select uid from user where uname=’ming’) and project.pid=u_p.pid

5.selenium原理简述

e) Selenium 经历了两个版本,Selenium 1.0 和 Selenium 2.0,本文仅介绍Selenium2的原理,在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。

f) Selenium是一个用于Web应用程序测试的工具,支持多平台、多浏览器、多语言去实现自动化测试,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样。

g) Selenium2原理

webdriver是按照server–client的经典设计模式设计的:

server端就是remote server,可以是任意的浏览器:我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出响应;

client端简单说来就是我们的测试代码:我们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被server端(也就是被测浏览器)server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息;

简单介绍一下webdriver的工作原理:

- 启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server。

- 客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给server端(通信协议:The WebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。

- Server端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器原生调用来完成操作。

注:

The WebDriver Wire Protocol是Selenium自己设计定义的协议,这套协议非常之强大,几乎可以操作浏览器做任何事情,包括打开、关闭、最大化、最小化、元素定位、元素点击、上传文件等。

WebDriver Wire协议是通用的,也就是说不管FirefoxDriver还是ChromeDriver,启动之后都会在某一个端口启动基于这套协议的Web Service。WebDriver Wire协议定义了一套基于RESTful的web service。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。