ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多测师_自动化面试题_面试题和参考

2020-06-30 21:03:04  阅读:253  来源: 互联网

标签:面试题 多测师 元素 关键字 测试 自动化 id 页面


自动化问答题:

1、你们公司的自动化用例如何进行维护?(从封装的角度作答)

我们知道封装的话一般分为三层,即元素层、流程层和案例层,我首先是对关键字进行提取到元素层,关键字的提取的话可以运用selenium2library库或者自己创建关键字进行提取,然后将元素层导入到流程层进行编写,最后将流程层导入到案例层,这样的话极大得节省了时间,并且方便后期的调用和维护,同时在后期调用时也不会对之前的案例产生影响。

 

2、自动化用例怎么进行设计的?又是怎样封装的?

首先会通过一个需求的评审,在对场景工具进行选择。

其次,我们都知道封装是分为元素层、流程层和案例层;然后我首先将Selenium2library

导入元素层,对关键词进行引用,分别提取出打开浏览器、输入账号、输入密码、点击登录、登录在线断言到元素区;

在提取输入账号和输入密码时,我会设置变量值,这样方便之后的调用,验证用例。

然后将元素层导入到流程层,在编写一个登录流程;

最后将流程层导入案例层,进行案列的编写。

 

3、自动化环境搭建过程?

1.安装python

2.安装robot framework : RF是一个基于Python的,通过关键字驱动测试的自动化框架。

3.安装Wxpython: Wxpython是一个库,使用RIDE工具必须先安装 Wxpython.

4.安装robot framework-ride :是wxptyhon gui库编写的图形页面,可以使用工具管理工程,管理用例,执行用例,查看日志执行结果

5.安装setuptools :第三方库安装工具

6. 安装第三方库

7. 安装浏览器驱动

 

4、rf框架的原理?常见的功能?

RF原理:框架通过关键字的组合形成测试逻辑,最终通过各个底层测试库与被测系统交互,完成自动化测试工作。

常见功能:添加第三方库、调用关键字、自定义关键字、打印结果、连接数据库、执行用例,查看报告。

 

5、公司自动化的流程?

测试需求分析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的正确性,最终完成自动化测试测试脚本,并输出测试结果。

 

6、什么项目适合做自动化?

测试需求分析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚本,验证测试脚本的正确性,最终完成自动化测试测试脚本,并输出测试结果。

 

7、市面常见的自动化工具?(至少还要去了解一款?)

1、RF——WebUI自动化测试

2、Python+selenium——WebUI自动化测试

(重点)这个应该大多数人都知道的,现在也是大多数互联网公司在使用的测试框架;selenium仅支持web的UI级别测试,但是其优点在于:

a、支持多种语言编写测试脚本,比如:java、python、ruby、perl等;同时也就意味着其后的支持类库也是很多的

b、支持多浏览器,如:ie,ff,safari、chrome等

c、支持多平台,如:windows、linux、MAC、android、iphone等

d、支持分布式执行,一套测试用例可以同时分布到不同的测试机上执行,而且还可以进行任务细化

3、Appium——AppUI自动化测试

4、Postman——接口测试

5、Jmeter——接口测试、性能测试

6、Loadrunner——性能测试

 

8、你用做自动化遇到的定位问题?(自动实现过程中遇到哪些问题)

1.使用某种定位方式无法定位时,更换定位方式(比如用文本内容无法定位时,改用id)

2.页面元素过多时,等待时间不够长,导致无法定位到元素,此时需要延迟等待时间

3.页面过长,无法直接定位元素,需要使用js语句,来将页面滑动到对应位置

4.页面有iframe,无法直接定位到元素,需要先切换进到iframe里面,再对元素进行相应的操作,如果是多个iframe嵌套在一起,需要一层一层的切换进去,在完成相应的操作之后,需要退出iframe,这里有2种方法,一种是逐级退出,另一种是直接退回到HTML主文档

5.在打开了多个浏览器窗口时,需要先获取窗口句柄,然后通过索引来切换窗口,当分不清楚当前窗口是哪一个时,可以通过打印窗口标题来确认

6.当一个元素操作完成之后可能会遮挡住另一个元素,这时候我们需要考虑把这两个元素的操作顺序换过来

7.访问首页时,有临时广告挡住了需要定位的元素,可以先通过点击操作关闭广告

 

9、自动化熟记常用的关键字?和自动定义关键字实现?

Open Browser https://www.baidu.com/ gc 打开浏览器并访问网页

Input Text id=kw 多测师 通过id属性定位

Execute Javascript document.getElementById('kw').value='多测师' 通过js定位

sleep 2 强制等待2s

Maximize Browser Window 窗口最大化

 

Reload Page 刷新页面

Go To https://www.sogou.com/ 当前窗口访问指定url

Go Back 回退

 

Input Text id=userAccount admin 输入账户名

Input Password id=loginPwd 123456 输入密码

Click Button id=loginBtn 点击按钮(只使用于type=”Button”的标签)

Click Element id=loginBtn 点击元素

Click Link hao123 点击链接hao123

Click Link //div[@id="s-top-left"]/a[2] 通过xpath定位hao123元素

 

${title} Get Title 获取标题

Switch Browser 1 切换浏览器(序号从1开始)

Switch Browser a 根据别名切换浏览器

Select Window 领券中心 切换窗口到领券中心

Select Window main 切换到第一个窗口

Select Window ${handel_1[1]} 切换窗口(按索引取值,正向从0开始,负向从-1)

 

Select From List By Index 索引从0开始

Close window 关闭当前窗口

Close browser 关闭当前浏览器

Close all browser 关闭所有浏览器

 

Title should be 百度一下,你就知道 验证当前窗口的title

 

${text} get text 获取文本内容

Log ${text}

 

${value} get value 获取value属性值

Log ${value}

 

Execute Javascript window.scrollTo(0,1000) 滚屏

${size} get window size 获取窗口大小

Log ${size}

Select radio button sex girl 单选框选值

Select checkbox xpath=//*[@value=’python’] 复选框选值

 

Select Frame id=e_iframe 进入iframe

Unselect Frame 退出iframe

 

Select From List By Index //select[@id="J_roomCountList"] 2 通过索引来选(索引从0开始)

Select From List By value //select[@id="J_roomCountList"] 2 通过value值来选

Select From List By label //select[@id="J_roomCountList"] 2间 通过值来选

 

Mouse over id=3 鼠标悬停在某个元素上

Handle alert accept 点击确认

Handle alert dismiss 点击取消

 

Page should contain 百度一下 断言当前页面是否含有该文本信息

Page should not contain 百度一下 断言当前页面是否不含有该文本信息

Page should contain element id=kw 断言当前页面是否含有该元素

Page should not contain element id=kw 断言当前页面是否不含有该元素

 

Assign id to element kw dcs 修改某个元素的id属性

Wait until page contains 设置 直等到页面包含该文本信息

Wait until page dose not contain 设置 直等到页面不包含该文本信息

Wait until page contains element kw 直等到页面包含该元素

Wait until page dose not contain element kw 直等到页面不包含该元素

 

${cell} get table cell //table[@class="_table"] 7 2 获取表格的值

Log ${cell}

RF连接数据库:

1.安装mysqldb客户端

2.Pip  install  robotframework-databaselibrary

3.导入DatabaseLibrary库

语法:

Connect To Database MySQLdb jyf root 123 192.168.135.129 3306 连接数据库

Table Must Exist duoceshi 判断表存在

Check If Exists In Database select * from duoceshi; 判断查询的数据存在

Check If Not Exists In Database select * from duoceshi; 判断查询的数据不存在

Delete all rows from table duoceshi; 删除表内所有数据

disconnect from Database 断开数据库连接

Execute Sql Script D:\sql.txt 执行数据库脚本文件

Execute Sql String insert into duoceshi values(5,1834,'wangwu',37); 执行sql语句

${a} Query select * from duoceshi; 查询

Log ${a}

${b} Row Count select * from duoceshi; 获取查询结果行数

Log ${b}

Row Count Is 0 select * from duoceshi where id=3; 判断查询结果是否为0

Row Count Is Equal To X select * from duoceshi; 3 判断查询结果是否为3

Row Count Is Greater Than X select * from duoceshi; 3 判断查询结果是否大于3

Row Count Is Less Than X select * from duoceshi; 3 判断查询结果是否小于3

 

RF自定义关键字:

(一)在C:\Python27\Lib\site-packages目录下新建python package 包 (名为duoces),查看C:\Python27\Lib\site-packages\duoces目录下是否有__init__.py ,若没有则自行创建

(二)C:\Python27\Lib\site-packages\duoces目录下新建关键词文件yzm.py,把类封装在里面

(三)在__init__.py 文件中写入:

# coding=utf-8

from yzm import Yzm

class duoces(Yzm): 类名需要与自定义的库名一致

ROBOT_LIBRARY_SCOPE = "GLOBAL" 将库设置为全局

(四)在RF中,导入库

注:一次定义多个关键字,则在关键字文件的类中写多个方法

或者写多个类,在__init__.py中使用多继承

 

10、结合你的项目讲解自动化?

我在上家公司也做过自动化测试,当时公司主要是用RF做自动化测试

RF是基于python语言开发的一个测试框架,它主要结合了ride、wxpython、第三方库selenium2library,RF是通过ride工具编写用例脚本,执行脚本后生成测试报告

  我当时搭建自动化测试环境的时候,首先安装了python,因为要用到python语言,然后就是安装wxpython(GUI图形库),再就是安装ride工具和setuptools,setuptools是用来安装第三方库的,最后就是安装我在测试中需要用到的库,例如selenium2library。这样我的自动化测试环境就搭好了

  我讲一下我项目中精英标这块的流程,这个模块的主要流程是注册-我要出借-精英标。首先我引用open browser关键字,后面接我们项目的网址,来打开浏览器,浏览器我们用的是谷歌,当时有出现网址打不开的情况,后面查明是因为浏览器驱动未升级,版本过低导致的;接下来我为了保证网页打开后使页面元素都显示出来,引用了关键字maxmize

Browser window来进行窗口最大化,然后通过click link关键字来点击注册,在这里我引用sleep关键字来等待页面跳转至注册页面;接着引用input text关键字来进行账号输入,引用input password来进行密码输入和密码确认输入;然后引用click element关键字来选取已同意注册协议等,接着引用click button关键字来点击确定注册按钮;注册完成后系统会自动登录,引用sleep关键字等待页面跳转至项目主界面;接下来就是引用mouse over关键字将鼠标悬停在‘我要出借’模块上面,利用click link点击精英标字段;然后sleep等待页面跳转到新窗口,这里需要切换窗口,所以我先定义一个变量,在引用get window handles

来获取所有窗口的句柄,并传参给定义的变量,然后引用select window关键字,通过句柄索引来进行窗口切换;窗口切换成功后,通过execute JavaScript+window.scrollTo(0,1000)关键字来进行窗口下滑,然后引用click element来选择想要投的精英标,引用sleep等待页面跳转;然后引用input text输入借出金额,引用select from list by value关键字来操作下拉框,进行借出期限的选择,引用click button来点击确认按钮,这里会弹出一个确定借出的弹框,当时我看了页面HTML代码,发现这是一个frame框,所以我引用select frame关键字进入框内,然后click button点击确认,最后引用Unselect frame关键字退出frame框。按照我的习惯,完成一个流程后我会关闭浏览器,这里引用了关键字close browser。好了,这就是我项目模块流程的介绍,谢谢

 

标签:面试题,多测师,元素,关键字,测试,自动化,id,页面
来源: https://www.cnblogs.com/xiaolehua/p/13215921.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有