自动化测试用例三
目前代码相关的就告一段落哟。我继续学习。
简录
记录的是testcase文件中的 test_case文件中和test_login的代码。
提示:这里可以添加本文要记录的大概内容:
confing文件中存放的是登录方法和xlsx测试用例。
testcase中存放的是把所有相关联的代码组合起来,变成有序的代码。
test_login是一个单独的登录文件。避免重复的登录和无效的登录。只有当登录失败时 才会再次调用 登录文件。
test_case代码
import json
import sys
from common import operation_xls, request_method
from testcase import test_login
from pytest_assume.plugin import assume
def test_ases():
# 读取excel数据
get_shear = operation_xls.shear_xls(books="\config\case_room.xlsx", sheet1="sheet1", line=1,column=1, scope_line=8, scope_column=13)
print("测试用例***", type(get_shear), get_shear)
yam_cookies = request_method.yaml_get(model='r')
print("yanml获取cookies**", type(yam_cookies), yam_cookies)
yam_cookie = yam_cookies["you-token"]
r_xls = []
# post传数据
for i in get_shear:
join_header = json.loads(i[0])
join_header.setdefault("cookie", "you-token=" + yam_cookie)
post_request = request_method.request_post(url=i[1], data=i[2], headers=join_header)
# 判断cookies过期,如果过期在重新获取
if post_request.json()['code'] == 401:
# 重新登录
yam_cookies = test_login.test_et_login()
#
# yam_cookies = request_method.yaml_get(yam="confing_yaml.yaml", model='r')
# 在跑用例
yam_cookie = yam_cookies["you-token"]
join_header = json.loads(i[0])
join_header.setdefault("cookie", "you-token=" + yam_cookie)
post_request = request_method.request_post(url=i[1], data=i[2], headers=join_header)
print("读取post的返回值***", post_request.json())
# 断言 code码和json返回值
code_variable = post_request.json()
code_Status = post_request.status_code
try:
assume(code_variable['code'] == 1)
assume(code_Status == 200)
except Exception as e:
print(e)
# 写入文件code码
r_xls.append(post_request.json()['code'])
print(type(r_xls), r_xls, '写入code返回值')
operation_xls.write_xls(book='\config\case_room.xlsx', sheet='sheet1', row='L2', read_data=r_xls)
# 读取xls数据进行断言,写入xls表
get_shear_xls = operation_xls.get_xls(books='\config\case_room.xlsx', sheet1="sheet1", line=2,
column=12)
print('读取xls数据', get_shear_xls)
# 预期结果和实际结果的判断写入xls,利用三元表达式+列表推导式
xls_data = ['成功' if j[0] == j[1] else '失败' for j in get_shear_xls]
operation_xls.write_xls(book='\config\case_room.xlsx', sheet='sheet1', row='N2', read_data=xls_data)
"""
三元表达式+列表推导式的原型
for j in get_shear_xls:
if j[0] ==j[1]:
xls_data.append('成功')
else:
xls_data.append('失败')"""
是登录的单独文件
from config import confing_login
from common import request_method
def test_et_login():
"""
单独的登录测试用例
:return:
"""
#
login_post = confing_login.login_ini()
post_login = request_method.request_post(url=login_post[0], data=login_post[1], headers=login_post[2])
request_method.yml_cookies( model='w', cooki=post_login.cookies)
print("login存入cookies***", post_login.cookies)
return post_login.cookies.get_dict()
总结:三元表达式和列表推导式用到的地方,应该挺多,有空可以去多了解一下。可以简写很多代码。