接口自动化实例 一
描述:该项目是一个聊天功能,用户需要登录后进行聊天,满足基本的功能。页面和接口存在BUG,提供接口自动化实践。
资源:实践项目
实践:登录在创建房间
示例如下
创建文件,common创建公共方法
common创建文件,创建 operation_xls.py、request_method.py和confing_yaml.yaml
1.operation_xls.py,用于读取xls表中的数据 。
2.request_method.py,request请求。
3. confing_yaml.yaml,存放数据。
request_method.py的模块代码
encode = 'utf-8'
#利用 import 引入模块
import json
import os.path
import requests
import yaml
import sys
#定义函数,函数定义里变量,**args 传入的是字典模式
def request_post(url, data, **args):
"""
post方法
:param url:
:param data:
:**args 可传参headers:
:return: list
"""
# header = json.dumps(headers)#因为 表中 的数据是json 就不需要 dumps转换成为json
request_post = requests.post(url=url, data=data.encode('utf-8'), headers=args['headers'])
return request_post
def cookie_get(url, data, **args):
"""
获取cookies的方法
:param url:
:param data:
:**args 可传参headers:
:return:
"""
request_pos = request_post(url, data, headers=args['headers'])
request_po = request_pos.cookies
return request_po
def yml_cookies(yam: str, model: str, cooki):
"""
写入yaml数据的方法
:param yam: yaml的文件名,比如XXXX.yaml
:param model: 以什么方式写入数据,比如 w a+
:return: dict
"""
#open必须传入两个参数。os.O_RDONLY是指0读
u0 = os.open(r'D:/Desk/pythonProject/common/'+yam , os.O_RDONLY)
with open(u0, mode=model, encoding='utf-8') as f:
yaml.dump(cooki.get_dict(), f, encoding='utf-8')
def yaml_get(yam,model):
"""
读取yaml
:return: 全量
"""
ui = os.open(r'D:\Desk\pythonProject\common\\'+yam, os.O_RDONLY)
with open(ui, mode=model, encoding='utf-8') as f:
get_yaml = yaml.load(f, yaml.Loader)
print("读取yaml文件***", get_yaml)
return get_yaml
operation_xls.py的模块代码
import xlwings as xw
def get_xls(books, sheet1, line, column):
"""
读取xls表中全部数据
:param books:
:param sheet1:
:param line: 最开始一行
:param column: 最开始一列
:return: 二维列表
"""
#不用打开软件显示在页面。
open_app = xw.App(visible=False, add_book=False)
open_book = open_app.books.open(r'../config/' + books)
open_sheet = open_book.sheets(sheet1)
#used_range.last_cell,自动定位到表中的最后一行,一列。
cell = open_sheet.used_range.last_cell
line_1 = cell.row
column_2 = cell.column
read_xls = open_sheet.range((line, column), (line_1, column_2)).options(numbers=int).value
#用完后,一定要保存文件,关闭软件,退出软件。
open_book.save()
open_book.close()
open_app.quit()
return read_xls
def shear_xls(books, sheet1, line, column, scope_line: 5, scope_column: 13):
"""
读取规定的几行数据
:param books:
:param sheet1:
:param line:1
:param column:1
:param scope_line: 下标第几个
:param scope_column: 下标第几个,join组合【scope_line:scope_column】获取区间的数据
:return: 二位列表
"""
#获取固定的几行数据。
head_xls = get_xls(books, sheet1, line, column)
head_xks = head_xls[1:]
list_1 = []
for i in head_xks:
interception = i[scope_line:scope_column]
if interception:
list_1.append(interception)
print("读取指定xls数据**", list_1)
return list_1
def write_xls(book, sheet:str, row, read_data):
"""
在表中写入数据
:param book:
:param sheet:
:param row:
:param read_data:
:return: 无
"""
open_app = xw.App(visible=False, add_book=False)
open_books = open_app.books.open(r'D:\Desk\pythonProject\config\\' + book)
open_sheet = open_books.sheets(sheet)
open_sheet.range(row).options(transpose=True).value = read_data
open_books.save()
open_books.close()
open_app.quit()
该项目目前只支持接口和功能测试。如果转发,使用,请留言。因为我们会进行定期用户删除。