面试总结2018年9月V1.0.0

政府打压,导致公司营业执照含金量大打折扣,元气大伤,其实这事的发生出乎意料之外,又在情理之中,具体事情,我就不多说了,商业机密,政府调控,没办法的事情。重要的事情,是寓意着我要有个新的开始了。

废话不多说,下面进入正题,总结下我找工作的经历,给大家一个参考和互相学习。答案,我总结了一下网上的文章结合自己的理解,整理了一份。个人认为完全可以应付面试,只供参考。

北京**互娱有限公司--面试题(笔试部分)

1,Get和Post有哪些区别?

a. get是从服务器上获取数据,post是向服务器传送数据。

get 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果。只是组织格式和数据量上面有差别,http协议里面有介绍

b. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

因为get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,但post一般都用来传递大数据,或比较隐私的数据,所以在地址栏看不到,能不能看到不是协议规定,是浏览器规定的。

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

没明白,怎么获得变量和你的服务器有关,和get或post无关,服务器都对这些请求做了封装

d. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

post基本没有限制,我想大家都上传过文件,都是用post方式的。只不过要修改form里面的那个type参数

e. get安全性非常低,post安全性较高。

如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到。

2,写一下冒泡排序

越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

这个主要描述清楚思路,大多数人,再eclipse上写代码很顺溜,真正手写就有点尴尬了,下面我写个java的简单例子:

思路就是,两个数对比,小的放前面;依次比较,有n个数,比较大概为n-1次排序,直到按数字的大小依次排序。

public static void bubbleSort(int []arr) {
        int[] arr = {12,23,34,56,56,56,78};
        for(int i =0;i<arr.length-1;i++) { 
            for(int j=0;j<arr.length-i-1;j++) {//-1为了防止溢出
                if(arr[j]>arr[j+1]) {
                    int temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
            }
         }    
     }
}

3,简述一下TCP与IP的区别

简单总结为:TCP:面向连接的传输层协议            IP:网路层协议

详细可以参考链接:参考链接

4,Selenium自动化,遇到iframe如何处理?

主要用到switch_to关键字

a、如果iframe有id或者name我们可以直接driver.switch_to.frame('****')。括号里边就是写具体的id或者name对应的值。

b、没有id、name我们可以driver.switch_to.frame(driver.find_element_by_class_name('ddd'))  # 切入

通过classname、xpath、css等进行切入

c、也可以通过索引,driver.switch_to.frame(0)这个索引是针对当前的iframe的。

需要先进入iframe,然后再进入他下的iframe,然后再执行我们的查找定位方式就可以定位到。

最后我们可以通过driver.switch_to.default_content()返回到默认的iframe。

5,遇到<d1 class="inf_bar clearfix">这种中间有空格的控件,如何通过class定位?

a,不能直接用class_name来定位,否则会报错;

b,可以采用xpath定位,结合xpath中的contains()函数,定位表达式://d1[contains(@class,'inf_bar')]

c,可以采用css定位,定位表达式:   .inf_bar.clearfix    (空格变为.)

6,Cookie和Session有什么区别?

a,保存位置:cookie保存在客户端,服务器可以知道其中的信息,session保存在服务器,客户端不知道其中的信息

b,保存类型:cookie中保存的是字符串,session中保存的是对象

c,安全性:cookie安全性差,session安全性高

d,对服务器性能影响:session会在一定时间内保存在服务器。当访问增多,会比较占用服务器的性能,考虑到减轻服务器压力,应当使用cookie

e,生命周期:在不设置条件的情况下两者都是在浏览器关闭后小时(可在客户端设置cookie的存活时间,也可在服务器端设置session的存活时间)

注意:因为session的运行依赖session id,而session id是存在cookie中的,也就是说,如果浏览器禁用了cookie, 同时session也会失效(但是可以通过其它方式实现,比如在url中传递 session_id)

7,Web端功能自动化,如何实现(非input型上传)上传文件

参考链接地址:https://blog.csdn.net/huilan_same/article/details/52439546

对于非input标签的上传,需要借助第三方工具

1) Python pywin32库结合winSpy,识别对话框句柄,进而操作

2) 还可以利用AutoIt,调用其生成的au3或exe文件

8,测试中遇到readonly属性的控件,需要如何处理?简述下思路

这个就是只读控件,不能操作,所以,基本思路:先用js去掉readonly属性,然后直接输入文本内容

9,Web端功能自动化,如何切换句柄?

window  handles关键字

1). 获得当前所有窗口的句柄:handles = driver.window_handles

2). 获得当前窗口的句柄:driver.current_window_handle

2). 切换到最新打开的窗口:driver.switch_to.window(handles[-1])

3). 切换到第一个窗口:driver.switch_to.window(handles[0])

10,Web端功能自动化中,使用Unittest框架,测试用例的命名有哪些规则?如何控制用例执行顺序。

测试类一般以Test开头,测试用例一般以test开头;

测试用例是按照字母a--z,数字0--9的顺序来执行,可以通过给测试用例函数添加数字或字母来控制测试用例的执行顺序。

写到最后,因为个人表达和技术能力限制,担心说不完整,理解错误,回答错误而误人子弟,所以都是百度+结合自己想法整理的,有所出入,欢迎指教。百度过程中,发现一博文问题和我的无出其二,这就尴尬了。参考了他的一些回答。我都不知道自己算不算是原创了。哭笑不得。。。出于尊重,把来自博客园的@cnhkzyy           大神的博文地址粘上:

https://www.cnblogs.com/cnhkzyy/p/9388345.html

服务大家的都是最好的。

猜你喜欢

转载自blog.csdn.net/qq_34671951/article/details/82378017