python浅拷贝和深拷贝的区别是什么,分别代表着什么含义?
答案:加入说一个人有name,有age,有skill。浅拷贝的话是将这三个对象都复制一遍,而深拷贝是将skill进行改变,并生成一个新的对象。
ui自动化中遇到元素定位不到,你想到什么方式去解决?
答案:1.元素定位不到我会去看这个元素是否在frame框架中,看需不需要切框架。
2.有可能这个元素的是动态元素,需要用到xpath中的starts-with方法来进行模糊匹配。
ui自动化中有什么难点解决了很久才解决好?
答案:
1.提示在页面封装类中没有basePage.py文件中定义好的函数问题:
1) 新建名字为module_basePage.pth文件,内容为“basePage.py文件”存放路径:例如(“d:\\test\\page”)
2) 进入python的安装目录,将文件放到python3\lib\sit-packages文件夹下
3) 在测试用例中导入其他文件夹模块引入:import sys
4) sys.path.append(“..”)
5) from .... import ...
pytest中有什么装饰器?(一般说三四个即可)
答案:1.pytest.skip (用于函数内,跳过测试用例)
2.fixture(函数作为参数)
3.odering(改变用例执行顺序)
4.rerunfailure(失败用例重跑)
python中==与is的区别?
答案:在同一种情况下进行判断,比如说判断用例是否是预期结果,使用==的话会返回ture,而使用is的话false,所以说==做判断更加的准确。
ui自动化八大元素定位分别是什么?
答案:id,name,classname,xpath,css,text,title,tag_name,link_text。
ui自动化中对页面有哪些处理方式?可以举例说明吗?
答案:1.切换句柄,多窗口处理,关闭页面。
2.因为在实际编写测试用例的过程当中,根据用例的场景,假如说我加入购物车打开了新的窗口,那么我需要到之前的窗口的话,就需要进行多窗口处理。
接口自动化测试参数化是怎么做的?
答案:1.在做接口自动化参数化时,首先先准备csv文件对需要进行参数化的接口进行输入。这些接口基本上是场景业务中的登录,加入购物车,添加设备等等这些业务。字段的化就是user_id,passwrod这些字段。2.在pytest中进行实现,需要使用parametrize(参数化)这个装饰器来参数化。其次要定义一个函数,函数中要运用到openpyxl这个包来,读取我们的csv文件,作为一个方法来使用。然后在这个case中调用这个方法,而这些csv中的参数都会作为字段来传参。这样就实现了参数化。
unittest与pytest的区别?
答案:1.在python中unittest和pytest都是自动化测试框架。unittest更适合做ui自动化测试,而pytest更适合做接口自动化测试。 2.unittest在编写用例时需要基础testcase这个包才能进行编写,而pytest只要是个方法,不需要被定义就能编写用例。在pytest中有丰富的插件可以进行使用,而且用例的执行方式除了用mian的方法还能用命令的方式进行执行。而unittest就没有pytest这么强大,可以说pytest是unittest的父亲。uniitest中写的用例,再pytest中一样也能够执行,pytest兼容unittest,而unittest不兼容pytest。
接口自动化和ui自动化的断言方式有什么区别?
答案:1.接口自动化的断言是根据业务状态码来断言,是使用arrest的这个函数来进行判断,一些业务状态码如:404,500,403等等。根据实际的接口请求参数和返回状态码来进行判断,核对用例是否符合预期结果。
2.ui自动化测试是根据实际的业务场景对功能操作和前端的各种组件,来校验的。而它的校验对象就是url地址,已经某个弹窗点击按钮之后,页面上会返回什么文案,等等。根据页面上实际的操作结果,来进行判断。同样也是使用arrest这个函数来判断预期结果是否符合实际结果。
接口自动化和ui自动化的利与弊是什么?
答案:1.利:不管是ui自动化还是接口自动化它执行速度都很快,而且能够对一些关键的场景及功能,进行回归测试来冒烟测试。能够确保产品的稳定性,保证主要的流程功能不会出错。能够大大降低企业的成本,能够代替人工点点点。
2.弊:自动化只适合一些需求比较稳定的产品,需求没有很大的变更。自动化的编写时间较长,通常一天之内编写十几条测试用例。
登录页面,获取验证码这个流程该怎么解决?
答案:万能验证码,cookies绕过登录,cookies中有个sessionid,有效期限为30分钟。
ui自动化中拼图组件该怎么实现?
答案:需要用到python中cv2这个包,来进行人工智能的图片识别!
14.一般来说cookies的有效时间是多久?
答案:30分钟
15.为什么有一些老的系统没有token但是又cookies?
答案:token是这几年才出来的新东西,老的系统大概率是用php开发所以没有cookies
ui自动化是所有的case都用来写自动化吗?
答案:不需要这样管理起来会很麻烦,我们只对主流程场景功能的case来进行编写自动化。‘
上家公司自动化与功能测试的占比是多少?
答案:如果你面试的是自动化的岗位,一定要回答百分之70以上,不然他绝对不会要你!!
在上家公司一共写了多少个自动化用例?
答案:这个随便说,150,200,300都可以,但是绝对不能说太少。
你用的这个自动化框架的目录结构是怎么样的?
config层
放配置文件,把所有的项目相关的配置均放到这里。
data层
放数据文件,可以把所有的测试用例的参数化相关的文件放到这里,一般可采用xlsx、csv、xml等格式。
drivers层
放所需的驱动,如Chromedriver、IEDriverServer等。
log层
所有生成的日志均存放在这里,可将日志分类,如运行时日志test log,错误日志error log等。
report层
放程序运行生成的报告,一般可有html报告、excel报告、截图等。
testcase层
编写测试用例
testsuite层
编写执行条件,定义执行方式,执行测试用例
ui自动化中beaspage这个类,主要是定义一些什么呢?
答案:一般定义的都是页面上的属性操作方法等等。
19.持续集成有什么作用?
答案:1.能够对项目进行,持续交付,持续部署等等 一套比较好的线性脚本框架: python+pytest+jenkins+allure+企业微信发送报告。这是一套企业中用得最多的框架。
如果有说的不对的地方,大家在评论区评论。