当前位置:   article > 正文

python面试题_pytest面试题

pytest面试题

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/394349?site
推荐阅读
相关标签
  

闽ICP备14008679号