python面试题

1、token过期如何使用装饰器处理

先进行登录,然后在登录函数返回token
在使用接口函数调用pytest.fixture()装饰器,将登录接口的返回值拿到

2、pytest运行原理

py文件以test开头或结尾
类以test开头或结尾,不能有init方法
方法以test开头或结尾

3、类方法参数值的传递有几种方法

位置参数
关键字参数
默认参数
不定长参数(可变参数)
参数组合,解包

4、pytest参数化作用域

pytest有三种传参方式,主要用到前两种

@pytest.mark.parametrize()装饰器方式进行参数化
pytest.fixture()方式进行参数化,fixture装饰的函数可以作为参数传入其他函数
conftest.py文件中存放参数化函数,可作用于模块内的所有测试用例

@pytest.fixture()有一个scope参数,并且有五个作用域级别
scope说明:
function 默认值,函数或方法级别被调用,当函数执行结束后,fixture则被销毁
class 类级别调用一次,当类中的最后一个测试函数执行结束后,fixture则被销毁
module 模块级别(每一个.py文件)调用一次,当模块中最后一个测试函数执行结束后,fixture则被销毁
package 包(一个文件夹下的.py文件)级别调用一次,当包中最后一个测试函数执行结束后,fixture则被销毁
session 多个文件调用一次,当多文件中最后一个测试函数执行结束后,fixture则被销毁

5、编写用例excel表格里data数据参数化处理

‘’’
如果想在python中处理excel文件,是需要专门模块
xlrd模块使用:
1、安装xlrd模块:pip3 install xlrd
2、导包
3、使用xlrd模块得方法打开excel文件
4、读取其中一个sheet页数据
5、获取某一行数据:row_values(0)/col_vaules(0)
6、获取行数或者列数:nrows/ncols
7、使用for循环遍历每一个单元格数据
for i in range(总行数):
print(table.row_values(i)[0])
‘’’

import xlrd
from selenium import webdriver
import  time
#使用xlrd模块方法打开excel文件
data = xlrd.open_workbook('date.xlsx')
table = data.sheets()[0]
nrow= table.nrows
ncols=table.ncols
print(nrow)
for i in range(nrow):
    print(table.row_values(i)[0])
    # 创建浏览器对象
    driver = webdriver.Chrome()
    driver.get('https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail')
    # 注册用户名
    driver.find_element_by_xpath('//*[@id="username"]').send_keys(table.row_values(i)[0])
    driver.find_element_by_xpath('//*[@id="password"]').send_keys(table.row_values(i)[1])
    driver.find_element_by_xpath('//*[@id="phone"]').send_keys(table.row_values(i)[2])
    driver.find_element_by_xpath('/html/body/div[2]/div/div/div[2]/div[2]/div[4]/span').click()
    driver.find_element_by_xpath('/html/body/div[2]/div/div/div[2]/div[2]/div[5]/a[1]').click()
 
    # 先设置一下延迟时间
    time.sleep(2)
    # 需要设置断言
    exUrl = "https://mail.163.com/"
    actUrl = driver.current_url
 
    if exUrl == actUrl:
        print("注册成功,正向用例成功")
    else:
        print("注册失败,注册用例不通过")
    # 设置进入下一步时间
    time.sleep(2)
    # 退出
    driver.quit()

6、请求返回的数据中Null怎么转化成python识别的字符串

在一个没有接口文档的自动化测试中,只能通过抓包及查日志查看发送的信息,其中有一个接口发送的信息如下:
“enable”: true, “new_size”: null,

以为null就是个字符串,直接将请求拼接成下面格式:
“enable”: true, “new_size”: “null”,
发现发送错误,我们换换,既然是为null,就是为空
enabl": true, “new_size”: ‘’,
再次发送,还是错误

其实,python与其它语言不一样,null即为none
python中none就是null,所以要传None
enable": true, “new_size”: None,
即可发送成功

7、python发送的数值类型怎么跟从数据库中查询出来的数据转换

注意:不对mysql查询出的数据做任何转换,返回数据为‘tuple’,这时是不能直接供接口校验使用的,需要进行数据转换

1、tuple转str:

after_testdata=str(testdata)#转换成str类型

2、查询数据库数据转换为list:

#把数据库里取出来的数据,转换成list格式
listdata=[]
for row in info:
listdata.append(row[0])
return listdata

3、查询数据库数据转换为json:

jsondatar = json.dumps(jsonData)

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值