cookie和session的区别?
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份
区别:
1、数据存放位置不同:
cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、安全程度不同:
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、性能使用程度不同:
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、数据存储大小不同:
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储于服务端,浏览器对其没有限制。
自动化测试中用例依赖的数据如何构造?
不管是接口自动化还是ui自动化都会存在自动化case依赖数据如何构造的问题,可以从三个方面去考虑:
第一个是在测试前采用接口去构造需要的数据;
第二个是使用初始化sql去初始化数据,但是如果说表结构复杂的话,sql编写也是比较大的工作量;
第三个方式是提前准备好一套数据,并且将该数据对应的数据库进行备份,在之后每次执行测试前先备份当前数据库数据,再导入之前的测试数据,再执行测试,测试执行完后再恢复原有的数据。
可参考之前写的文章:如何构造测试数据?
接口测试时碰到接口重定向如何去测试?
首先接口测试方式不同则处理方式不同,如果用的jmeter则无需特殊处理,jmeter默认会自动处理重定向接口,自动发起对重定向的接口地址的访问并返回结果;如果是采用代码框架的方式则有可能需要特殊处理,拿到第一个接口响应header中的location字段对应的接口地址,发起对该地址的请求。
感兴趣的朋友可以自己用以下的网址访问去测试一下各种方式发请求是否有区别:https://www.360buy.com,浏览器访问这个网址会自动跳转到京东首页。用python代码发请求的话,默认allow_redirects=True,会自动重定向,可以手动传Flase进去,然后看一下响应结果。可能其他框架有的没有做这种处理,测试的时候要注意一下。
接口依赖第三方接口,但是第三方接口却有问题怎么办?
一般会采用mock来解决这个问题。但是要分场景去看是否要开发的支持,如果是客户端直接调用第三方接口的,这种测试人员自己mock就行。如果是开发人员自己包装了一个接口,然后再自己的接口里面再去调用第三方接口的,这种就需要开发的配合才行,将自己公司的接口调用指向mock出来的接口服务。
web自动化中有哪些场景需要特殊处理?
1. iframe元素,当要操作的元素在iframe中是需要先将driver切换至该iframe才能操作,切换方式有四种,通过id、name、索引、iframe元素对象,并且在多iframe切换时还需要进行各种转换
2. 新窗口打开,当要操作的元素在一个新窗口打开的页面上时,就需要先将driver切换至新窗口上才能进行操作
3. 时间控件,通常时间控件只能选择无法输入,那么可以采用js的方式修改时间控件的只读属性然后再进行输入,或者用js直接修改时间控件的readonly 属性。参考代码:
document.getElementById("xxx").removeAttribute("readonly")
4. 元素不在当前视野需要滚动才会出现,可以采用js的方式滚动,但是有时候界面中有多个滚动条js就会无效,则需要先将光标置入到滚动条区域然后模拟键盘的上下左右键来操作.