16.接口自动化学习-编码处理与装饰器

1.编码和解码

编码:将自然语言翻译成计算机可以识别的语言
hello–01010
解码:将机器识别的语言翻译成自然语言

2.编码格式

UTF-8
GBK
unicode

3.编码操作

   #编码操作str1="hello呀哈哈哈"str2=str1.encode('gbk')print(str2)print(type(str2))#解码操作str3=str2.decode('gbk')# str4 = str2.decode('utf-8')print('解码与编码一致结果',str3)

在这里插入图片描述

 resp = requests.request(data['method'], url=f'{HOST}' + data['url'],params=inData, headers=self.header)#修改响应数据编码resp.encoding='gbk'
print('响应数据编码》》',resp.encoding)

4.装饰器技术

应用:
在已有的自动化项目中,需要加入一个功能:
获取每个用例执行的时间
方法:
(1)在每个test_xx的方法中,使用time.time进行计时–效率不高,改变原有结构

(2)运用python装饰器

4.1 装包、解包、闭包

装包:在函数定义时 def test(*args,**kwargs)
test(1,2,3,name=tom)–args:装包成元组,**kwargs装包成字典
解包:在函数调用时
test(
[10,20])====>解包成test(10,20)
闭包:在一个函数里定义一个函数,内置函数使用了外函数的一个变量,外函数的返回值是内函数的函数对象

装饰器: 在已有函数的功能上,不修改代码去扩展函数功能

第一版:调用结构会改变

import time
def test_case01():time.sleep(1)#模拟测试用例执行时间print("--01自动化测试用例执行--")
def test_case02():time.sleep(1)#模拟测试用例执行时间print("--02自动化测试用例执行--")
def show_time(func):def inner():startTime=time.time()#自动化测试用例执行过程func()endTime=time.time()print("执行时间》》",endTime-startTime)return inner
if __name__ == '__main__':test_case01=show_time(test_case01) #用一个变量test_case接受外部函数的返回test_case01()#就可以使用变量名去调用内置函数test_case02=show_time(test_case02)test_case02()

第二版:语法糖优化,没有改变调用方式和原test_case中的代码

@show_time #等价于第一版的 test_case01=show_time(test_case01)
等价于test_case01=inner

import time
def show_time(func):def inner():startTime=time.time()#自动化测试用例执行过程func()endTime=time.time()print("执行时间》》",endTime-startTime)return inner
@show_time#等价于 test_case01=show_time(test_case01)
def test_case01():time.sleep(1)#模拟测试用例执行时间print("--01自动化测试用例执行--")
@show_time
def test_case02():time.sleep(1)#模拟测试用例执行时间print("--02自动化测试用例执行--")if __name__ == '__main__':test_case01()test_case02()

在这里插入图片描述

实际运用:计算login接口用例的执行时间

要根据实际接口情况进行改造,本次添加了login的参数和返回
装饰器.py


import time
def show_time(func):def inner(*args):# login函数有参数,所以加上*argsstartTime=time.time()#自动化测试用例执行过程res = func(*args)endTime=time.time()print("执行时间》》",endTime-startTime)return res #login有返回值,所以要returnreturn inner

login.py

from common.baseApi import BaseApi
from configs.config import NAME_PSW
import requests
import hashlib
import copy
import json
from utils.装饰器 import show_timeclass Login(BaseApi):# 登录接口@show_time#等价于login=show_time(login)def login(self,inData,getToken=False):# 浅拷贝inData,以防加密时原数据被修改inData= copy.copy(inData)print(type(inData))inData['password'] = get_md5_data(inData['password'])# 封装数据payload = inData# 请求并接受响应respData = self.request_send(payload)print(type(respData))if getToken:return respData['data']['token']else:return respData# 加密接口
def get_md5_data(pwd: str):md5 = hashlib.md5()md5.update(pwd.encode('utf-8'))# hexdigest():返回摘要,作为十六进制数据字符串值return md5.hexdigest()if __name__ == '__main__':res=Login().login(NAME_PSW)print(res)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js原型链与继承笔记

前置阅读:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain js中的“类”是一个函数。function test() {}中,test是由Function生成的。prototype与__proto__的区别: 前者是js函数(C…

Linux学习之路 -- 文件系统 -- 缓冲区

前面介绍了文件描述符的相关知识,下面我们将介绍缓冲区的相关知识。 本质上来说,缓冲区就是一块内存区域,因为内核上的缓冲区较复杂,所以本文主要介绍C语言的缓冲区。 目录 1.为什么要有缓冲区 2.应用层缓冲区的默认刷新策略 …

如何在bud里弄3d模型?---模大狮模型网

随着数字化设计的不断发展,越来越多的设计软件提供了对3D模型的支持,为设计师们带来了更广阔的创作空间。Bud作为一款功能强大的设计工具,也提供了添加和编辑3D模型的功能,让用户能够更加灵活地进行设计创作。本文将为您详细介绍如…

【计算机网络】计算机网络体系结构

🚩本文已收录至专栏:计算机网络学习之旅 一.常见的三种结构 (1) OSI参考模型 为了使不同体系结构的计算机网络都能互连起来,国际标准化组织于1977年成立了专门机构研究该问题,提出了著名的开放系统互连基本参考模型&#xff0c…

pycharm 将项目连同库一起打包及虚拟环境的使用

目录 一、创建虚拟环境 1、用 anaconda 创建 2、Pycharm 直接创建 二、虚拟环境安装第三方库 1、创建项目后,启动终端(Alt F12),或者点击下方标记处。 2、使用 pip 或者 conda 来进行三方库的安装或卸载 3、将项目中的库放入文档,便于…

李宏毅-注意力机制详解

原视频链接:attention 一. 基本问题分析 1. 模型的input 无论是预测视频观看人数还是图像处理,输入都可以看作是一个向量,输出是一个数值或类别。然而,若输入是一系列向量,长度可能会不同,例如把句子里的…

Spring STOMP-消息处理流程

一旦STOMP的接口被公布,Spring应用程序就成为连接客户端的STOMP代理。本节描述服务端消息处理的流程。 spring-messaging模块包含消息类应用的基础功能,这些功能起源于Spring Integration项目。并且,后来被提取整合到Spring框架,…

Spring Boot 调用外部接口的几种方式

Spring Boot 调用外部接口的几种方式 在微服务架构中,服务间的调用是不可或缺的环节。Spring Boot 为开发者提供了多种方式来实现这一任务,这个文章将为你详细介绍这些方式。 一、使用RestTemplate RestTemplate是 Spring Boot 早期版本中常用的 REST 客…

十个最适合论文写作的GPTs及其应用

文章目录 一、GPTs让一切皆有可能二、最适合论文写作的GPTs及其应用1、[Paper Search Engine](https://chat.openai.com/g/g-9v5gHG9Bo)2、[Academic Paper Specialist(学术论文撰写专家)](https://chat.openai.com/g/g-jryw3pfsH)3、[Paper Connect 论文…

微信公众号接入chatGPT自动回复(2)

微信公众平台 配置自动回复的服务器 application.properties中的配置 验证服务器接口配置 其实就两个接口(相同的url地址,只不过请求方式不一样) 1.验证接口(get请求) 2.自动回复接口(post请求) 完整代码 这个地址就是上面URL配置的地址 如果使用Nginx的话自动配置 将该代…

11个免费的 android数据恢复应用程序功能分析

在手机上丢失数据是一个很大的错误。但是,在这种情况下,除了惊慌失措之外,最好开始使用android数据恢复应用程序搜索以查找将其取回的方法。您可以检查手机的备份存储以在Android上进行数据恢复,但是如果数据仍然无处可寻&#xf…

@PostConstruct

PostConstruct initializeBean方法–> PostProcessor.postProcessMergedBeanDefinition --> InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction 被PostConstruct注解的方法会在Bean初始化的时候被调用,如下图: 继承关系如下…

jenkins连接ubuntu普通用户节点

1.创建credentials 2.创建node 3.在jenkins服务器还需要进行的操作(jenkins服务器中) mkdir /var/lib/jenkins/.ssh ssh-keyscan -H 192.168.110.204 >> /var/lib/jenkins/.ssh/known_hosts chown -R jenkins:jenkins /var/lib/jenkins/.ssh/ 4.…

相交链表(数据结构)

160. 相交链表 - 力扣(LeetCode)https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 题目 解决思路 1,找到相交的点 相交链表的关键也就是找到相交的点,所以我们需要首先判断有没有相交的节点&#…

最新的云渲染100活动有哪些?渲染100邀请码1a12

随着科技的进步,云渲染已经成为设计行业的必备工具,各个云渲染平台为了吸引用户也推出各种各样的活动,今天我们以广受好评的渲染100为例,来说下它们的活动体系。 1、新用户活动 渲染100对新用户很友好,提供了充足的测…

K-RTD01和利时FW248中控卡件

K-RTD01和利时FW248中控卡件。 系统概述 的全称为保护工程师站及录波分析后台”是利用现代计算机和网络技术,K-RTD01和利时FW248中控卡件。实时收集变电站运行和故障信息,并通过对变电站的故障信息进行综合分析,K-RTD01和利时FW248中控卡件。…

Ps 滤镜:便条纸

Ps菜单:滤镜/滤镜库/素描/便条纸 Filter Gallery/Sketch/Note Paper 便条纸 Note Paper滤镜用于模拟手工纸张的质感和视觉效果。此滤镜将图像简化并添加浮雕和颗粒效果,使图像看起来像是在手工制作的纸上绘制或打印。 “便条纸”滤镜通过结合使用浮雕效果…

Copilot for Microsoft 365 扩充新增 16 种语言

最近,微软公司发布公告,进一步扩大 Copilot for Microsoft 365 语言支持,新增 16 种,支持的语言总数达到 25 种。 新支持的语言如下: 阿拉伯语 捷克语 丹麦语 荷兰语 芬兰语 希伯来语 匈牙利语 韩语 挪威语&am…

云动态摘要 2024-05-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]即刻畅享自研SaaS产品 腾讯云 2024-04-25 涵盖办公协同、营销拓客、上云安全保障、数据分析处理等多场景 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…