中高级测试工程师基础知识必备之selenium篇_id,name,clas,x path, css selector 不同方式进行定位

2.可以参考自动化用例的执行策略

10.你觉得自动化测试最大的缺陷是什么?

答:

1.不稳定

2.可靠性

3.不易维护

4.成本与收益

11.webdriver可以用来做接口测试吗?

答:有难度,不推荐

12.get和post 的区别?(感觉可能答案不对)

答:

-因为使用GET请求不会产生什么动作。不会产生动作意味着GET的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。POST可能会修改服务器上的资源的请求。比如CSDN的博客,用户提交一篇文章或者一个读者提交评论是通过POST请求来实现的,因为再提交文章或者评论提交后资源(即某个页面)不同了,或者说资源被修改了。

两种请求方式的区别:

1.GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

2.传输数据的大小

在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。

对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。

3.安全性

POST的安全性比GET的高

13.公司内一直在使用的测试系统(B/S架构)突然不能访问了,需要你进行排查并恢复,说出你的检查方法

答:

一.网站输入域名直接无法访问,网站之前还正常,突然就无法访问

  1. 测试FTP是否正常可以登录,不能登录的直接问空间商那是空间商的问题直接联系他们。

  2. 空间赠送的三级域名是否能够访问网站打开网站(空间都赠送三级域名),如果也不能访问应该是空间问题。

  3. 在电脑的开始菜单运行中输入cmd,在弹出的黑框中输入:ping 你的域名;然后回车,如果看不到IP或IP地址与你的主机地址不符,则说明域名解析有误,是域名的问题得重新解析域名。

二.访问报404错误(无法找到该页)。说明是网站内容都正常是程序出现问题,看看程序是否完整。

三.访问网站出现MySQL Server Error 这个是数据库链接错误,查看数据库连接文件和数据库是不是错误。

四.访问网站出现500错误。

  1. 请登录FTP查看是否多了异常文件或丢失文件,说明网站被侵入了,马上联系网站制作进行进行排查故障。

  2. 如果空间且FTP程序目录没有缺失文件或刚刚安装就出现500错误,请确认空间已开启scandir()函数,查看是不是禁止了这个函数。

14.webdriver client的原理是什么?

答:

Webdriver实现原理

通过研究selenium-webdriver的源码,笔者发现其实webdriver的实现原理并不高深莫测无法揣度。在这里以webdriver ruby binding的firefox-webdriver实现为例,简单介绍一下webdriver的工作原理。

当测试脚本启动firefox的时候,selenium-webdriver 会首先在新线程中启动firefox浏览器。如果测试脚本指定了firefox的profile,那么就以该profile启动,否则的话就新启1个profile,并启动firefox;firefox一般是以-no-remote的方法启动,启动后selenium-webdriver会将firefox绑定到特定的端口,绑定完成后该firefox实例便作为webdriver的remote server存在;客户端(也就是测试脚本)创建1个session,在该session中通过http请求向remote server发送restful的请求,remote server解析请求,完成相应操作并返回response;客户端接受response,并分析其返回值以决定是转到第3步还是结束脚本;这就是webdriver的工作流程,看起来很复杂实际上当了解了webdriver的实现原理后,理解上述问题应该比较简单。

webdriver是按照server – client的经典设计模式设计的。server端就是remote server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应;client端简单说来就是我们的测试代码,我们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被 测试浏览器,也就是remote server;remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息;

15.什么是page object设计模式?

答:

-http://www.cnblogs.com/tsbc/p/4080301.html

相似功能地方,代码基本都是一样的,界面元素换个查找方式,把原来的使用 xpath方式,改为使用 id 查找,需要对每个用例脚本都要改,虽然几个用例看不出什么工作量,但是重复findElement的代码,已经让我们感到了代码的笨重。如果某些定位发生了改变,我们就得贯穿整个测试代码进行调整元素定位,这样就会导致我们的脚本在后期,难以维护。因此通过Page Object Model 我们可以创建更加健壮代码,并减少或者消除重复的测试代码,从而也能够提高代码的可读性,减少编写脚本的工作量。Page Object Model的实现,就是通过分离测试对象和测试脚本的抽象来实现的。

Part 3:

a.自动化测试框架都有哪些?

1.模块化框架(test script modularity)

2.函数库结构框架(test library architecture)

3.关键字驱动测试框架(keyword-driven/table-driven testing)

4.数据驱动测试框架(data-driven testing)

5.混合型框架(hybrid test automation)

b.id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?

css 、xpath 几乎所有的元素都可以定位到

c.如何去定位页面上动态加载的元素?

触发动态加载元素的事件,直至动态元素出现,进行定位

d.如何去定位属性动态变化的元素?

xpath或者css通过同级、父级、子级进行定位

e.提到Selenium和Sikuli有什么区别?

Selenium:

它不能自动化视频播放器,音频播放器等闪存对象。

它有复杂的API

它没有视觉匹配

它只能自动化Web应用程序

f.如何提高selenium脚本的执行速度?

Selenium脚本的执行速度受多方面因素的影响:

  • 网速;

  • 操作步骤的繁琐程度;

  • 页面加载的速度;

  • 脚本中设置的等待时间;

  • 运行脚本的线程数;

  • 能稳定的视线回归测试是关键;


提高速度的方法:

减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。

中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。

配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。

g.做自动化测试是否需要连接数据库做数据校验?

UI自动化测试不需要,接口自动化测试需要;

Part 4:

一.如何提高selenium脚本的执行速度?

1.少用sleep

2.多用显式等待方法

3.性能好的电脑执行

二,用例在运行过程中经常会出现不稳定的情况,也就是这次可以通过,下次无法通过了?

1.查找元素前先做判断:expected_conditions()里面的各种方法

2.显式等待:WebDriverWait()

注:这两者配合使用

三,你的自动化用例的执行策略是什么?

1.集成到jenkins一键执行,可以手动执行,也可以定时执行

四.什么是持续集成?

可以通过,下次无法通过了?**

1.查找元素前先做判断:expected_conditions()里面的各种方法

2.显式等待:WebDriverWait()

注:这两者配合使用

三,你的自动化用例的执行策略是什么?

1.集成到jenkins一键执行,可以手动执行,也可以定时执行

[外链图片转存中…(img-mkYxkmwB-1724883277575)][外链图片转存中…(img-ZB5hnSay-1724883277576)][外链图片转存中…(img-qCBms57j-1724883277576)]

四.什么是持续集成?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值