软件测试面试(四)

一、在自动化测试过程中,选择的是哪一种数据驱动形式?

数据驱动,通过文件存放数据管理的形式,在执行自动化时,直接导入文件中的数据,来实现整个自动化测试业务。提升代码的可维护性,代码与数据分离,更好地对自动化测试执行以及测试数据进行管理和维护。

常用的数据驱动形式包括:

Excel数据驱动:实现简单,容易上手。但是数据较为死板,管理相对麻烦

yaml数据驱动:数据直观,可灵活优化,方便管理。但实现对于技术要求更高。

其他数据驱动:TXT、CSV、XML等。

二、可以说下什么是关键字驱动吗?

关键字驱动,是自动化测试框架设计模式中最为核心与底层的设计模式,适用于UI自动化和接口自动化中。

本质意义上其实就是面向对象编程思维里的对象与封装,这种设计模式就是将代码基于业务使用场景进行合理的独立封装,再通过调用封装好的函数来实现业务执行。

一般而言,封装时都会考虑代码的复用性,封装的灵活度等问题。

封装上也会基于实际需要进行变化,从常态化的操作行为的封装,到业务流程的封装,到固定步骤与数据的封装等,封装形式是多样化的。

适用于各类型的项目自动化,是适配性最强的一种设计模式。

三、什么是PO?

PO模型是自动化测试框架设计中专用于UI自动化的一种设计模型。

在PO中,关注的核心是页面,而不是操作行为。

基于页面,将复杂的业务流程进行切片,把完整的业务流程切割成一个又一个的独立页面,最终再将页面以业务所需的顺序进行组装,最终实现业务流程的运行。

极大提升了代码的维护性,所有的内容基于页面来进行管理,每一个页面的单独维护都可以对测试用例的执行进行同步维护,降低维护成本。

更好地满足单一系统的自动化测试覆盖。

四、如何提高selenium脚本的自动化执行效率?

1、优化测试用例,尽可能不使用强制等待。

2、减少不必要的操作步骤,与业务流程无关的操作步骤或者可简化的操作步骤,例如经过三到四步才能访问到要测试的页面,可以直接通过访问URL来操作,简化操作步骤。

3、设置合理的页面加载策略,如果页面加载内容过多,可检查具体加载内容是哪些,基于实际情况,在不影响测试的前提下,配置不同的加载策略,提升执行过程中的运行速度。

4、合理设计与封装测试框架结构,简化人为介入的操作过程,降低自动化测试代码的维护难度。

五、如何提高自动化执行的稳定性?

1、合理化使用各类等待,确保元素在页面正常显示。

2、做好异常处理机制,即try...except

3、多用例并发时,减少各用例之间的耦合度,避免在多线程运行过程中因为执行顺序的不可控导致异常。

4、独立化测试环境,避免环境干扰及数据干扰。

5、检查元素定位正确性,尽量避免元素定位失败导致的测试终止。

六、如何设计高质量自动化脚本?

1、独立化测试场景,将不同业务流程下的测试执行进行独立化管理,避免将所有代码封装在一个函数中,或保存在一个类中,降低代码冗余,提升代码的维护性。

2、应用合理的设计模式,结合企业业务需求、团队技术能力、自动化执行目的、被测试项目情况进行合理化的测试框架结构设计,确保实现的自动化测试框架可以满足到企业的预期要求,并能够顺利在团队中进行推行。

3、降低不同场景下的测试用例耦合度,独立化不同的测试用例。

4、使用分层结构设计,确保在实际运行过程中,测试数据、测试代码、逻辑代码的完整分离。

5、对于业务流程,核心是从业务的正向流程去分析与设计用例,不要企图把所有的操作行为都基于代码来实现。

6、各个函数的封装上,都要考虑到更加灵活的方式来实现,避免因为逻辑写死而导致的函数功能单一,无法满足尽可能多的需求。

七、一个完整的请求过程是什么样的?

在不强调网络协议的情况下,请求基本都是HTTP网络协议下的请求。

 域名解析--服务器建立连接--发送请求--服务器接收并运算,生成响应--返回响应结果--前段解析,加载资源--渲染到页面展示

八、HTTP中长连接与短连接的区别?

短连接是指客户端与服务端每进行一次请求操作,就建立一次TCP连接,收到服务器响应后,就断开连接。

长连接是指客户端和服务建立TCP连接后,它们之间的连接会持续存在,不会因为一次HTTP请求后关闭,后续的请求也是用这个连接进行通信,使用长连接的HTTP协议,会在响应头有加入:Connection:keep-alive。长连接可以省去每次TCP建立和关闭的握手和挥手操作,节约时间提高效率。但在长连接下,客户端一般不会主动关闭连接,如果客户端和服务端之间的连接一直不关闭的话,随着连接数越来越多,会对服务端造成压力。

所以长连接多用于频繁请求资源,而且连接数不能太多的情况,例如数据库的连接用长连接。而像Web网站这种并发量大,但是每个用户无需频繁操作的场景,一般都使用短连接,因为长连接对服务端来说会耗费一定的资源。


九、如何设计接口自动化测试用例?

1、单接口用例设计(边界值、等价类等)

 2、接口关联业务用例设计(yaml+unittest)

十、接口测试中Get与Post的区别?

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值