httprunnet自动化测试实战

引言

自动化测试是指使用软件工具、脚本或编程来执行测试任务,以代替人工执行测试用例的过程。它使用自动化工具和技术来模拟用户操作,验证和评估软件应用程序的功能、性能和稳定性。
自动化测试的主要目的是提高测试效率和质量,它具有以下几个重要的意义:
1、提高效率:自动化测试可以大幅度缩短测试周期,减少测试工作量和时间成本。相比手动测试,自动化测试可以在短时间内执行大量测试用例,加快测试过程。
2、提高准确性:自动化测试可以消除人为的错误和主观判断,提供一致性的测试结果。它可以准确地模拟用户行为和操作,减少人为误差,提高测试准确性。
3、提高覆盖范围:自动化测试可以覆盖更多的测试场景和测试用例。它可以同时运行多个测试,并在不同的环境和配置下运行,更全面地测试应用的功能和性能。
4、提高回归测试效率:对于频繁更改和发布的系统,自动化测试可以在每次更改后快速运行回归测试,以确保新功能不会影响现有功能的正确性。
5、提高可重复性:自动化测试可以重复执行相同的测试用例,确保测试过程的一致性和可重现性。这对于验证和复现缺陷、追踪问题非常有价值。
6、释放人力:自动化测试可以将重复性和繁琐的测试任务交给机器完成,从而释放测试人员的时间和精力,使其能够更专注于更具创造性和挑战的测试任务,如测试策略的制定和缺陷分析。

总之,自动化测试在提高测试效率和质量方面具有重要的意义,使团队能够更快速、准确和全面地验证和评估软件应用的各个方面。

自动化测试的好处

自动化测试的好处包括提高测试效率、提高测试覆盖范围、提高测试准确性、提高回归测试效率、提高可重复性、节省时间和成本,以及释放测试人力。这些好处使团队能够更快速、准确、全面和可靠地进行软件测试,提供高质量的软件产品。

自动化测试工具的选择

调研两款工具,本次实践用选择httprunner

httprunnerpytest
httprunner是一个基于Python的开源工具,易于学习和上手,使用YAML语言编写测试脚本,对于非开发人员也比较友好ytest是一个成熟的Python测试框架,提供了丰富的功能和插件,但对于非开发人员来说,可能有一定的学习曲线。
httprunner不仅支持接口测试,还支持功能测试、性能测试、安全测试等多种类型的测试。它还具有数据驱动、参数化、断言等强大的功能,可以满足复杂的测试需求。pytest提供了丰富的功能和插件,支持各种类型的测试,如单元测试、集成测试、功能测试等。通过自定义插件和自定义装置,可以很灵活地扩展和定制。
httprunner有一个活跃的社区,文档详细,有较多的示例供参考。同时,它与Python的生态系统相集成,可以利用Python社区提供的丰富资源。pytest在Python社区中非常受欢迎,拥有活跃的社区和广泛的文档支持。还有许多插件可以集成到pytest中,增强其功能。
httprunner允许使用Python进行自定义扩展,可以通过编写Python代码来进行更高级的定制和扩展。pytest提供了丰富的插件机制,可以通过开发自定义插件来扩展其功能。这使得pytest非常灵活,可以应对各种定制和扩展需求。

自动化测试脚本的编写和维护

环境准备:python环境安装
安装httprunner

pip3 install httprunner

创建hrp项目

 hrp startproject demo --py

手工编写用例,官网demo:
在这里插入图片描述
运行用例,生产测试报告

hrp run testcases -gc

用例增强-自定义函数
在项目下debugtalk.py文件下编写自定义函数
在这里插入图片描述
variables关键字下声明自定义函数格式 变量名: 函数实例 ! [ 在这里插入图片描述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 725 b 4 c f 0 a 0254 e 11 b 1 f b 3 d 667 e 752 c 50. p n g ) 在用例中使用: {函数实例} ![在这里插入图片描述](https://img-blog.csdnimg.cn/725b4cf0a0254e11b1fb3d667e752c50.png) 在用例中使用: 函数实例![在这里插入图片描述](https://imgblog.csdnimg.cn/725b4cf0a0254e11b1fb3d667e752c50.png)在用例中使用:变量名
在这里插入图片描述
用例增强-引用yml依赖
在测试步骤中引用yml文件作为依赖
在这里插入图片描述
用例增强-一个用例中变量导出给其他用例使用
在用例中使用关键字export导出需要给其他用例使用的变量
在这里插入图片描述
在新用例中引用变量
在这里插入图片描述

自动化测试集成与持续集成

本地集成思路
目的:将每次执行的自动化结果更新到测试平台展示
1、触达用例执行
2、执行结果生产静态文件保存到测试平台static目录下
测试平台搭建源码

import subprocess
import os
import shutil
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
dir = BASE_DIR class do_case():def __init__(self,dirpath):self.dir = dirpathdef remove_file(self):path = self.dirfiles = os.listdir(path)for file in files:os.remove(path + file)def rename_file(self):file = os.listdir(self.dir)for i in range(len(file)):# 原文件名n1 = self.dir  + file[i]# 新文件名n2 = 'auto_report.html'# 调用改名函数,完成改名操作os.rename(n1, self.dir+n2)def cope_file(self):shutil.copy(self.dir + '\\auto_report.html', BASE_DIR + '\\cloudWeb\\public\\static')def run_case(self):subprocess.call(" hrp run testcases\-gc",shell=True)def run_case():do = do_case(dir)# 清除目录do.remove_file()# 执行用例do.run_case()# 改名reportdo.rename_file()# 移动reportdo.cope_file()

前端代码

<template><div class="iframe_box"><el-button type="primary" :loading="loadflag" style=" frameborder:0; margin-top:25%;margin-left:1.5%;" @click="run">run testcase</el-button><iframeref="iframeDom":src="`/static/auto_report.html`"style="width: 100%; height: 100%; frameborder:1; position: absolute; top: 0; left: 0;margin-left:10%;"/></div>
</template>
<script>
import { run_case_list } from '@/api/apiAuto'
export default {data() {return {loadflag: false}},methods: {run() {this.loadflag = truerun_case_list({}).then(res => {this.loadflag = falsethis.$message({ message: '用例运行完成', type: 'success' })})}}
}
</script>
<style scoped>
.iframe_box{
background: #f5f3f3;width: 100%;height: 1000px;
}
</style>

效果展示
在这里插入图片描述

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

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

相关文章

视频转二维码简单技巧,适用多种视频格式

现在很多商品介绍多是以视频的方式来展现&#xff0c;那么为了方便用户能够同时快速获取视频内容&#xff0c;所以很多的商家现在会将视频生成二维码放到宣传单、展板、海报等宣传内容上&#xff0c;让他人通过扫码获取信息。那么视频二维码生成器的使用方法有哪几个步骤呢&…

矩阵剪辑系统源码----pc/手机端双开发

剪辑系统&#xff0c;剪辑矩阵系统&#xff0c;剪辑矩阵系统主要是针对抖音、快手、bili平台的一个工具&#xff0c;今天就来给大家交流一下这 个产品的主要功能以及构成。剪辑矩阵系统&#xff0c;矩阵剪辑系统源码-这产品主要功能就是一个视频剪辑功能&#xff0c;这个视频剪…

asp.net饭店订餐管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机设计定制

一、源码特点 asp.net 饭店订餐管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语 言开发 asp.net饭店订餐系统 二、功能介…

【设计模式】使用建造者模式组装对象并加入自定义校验

文章目录 1.前言1.1.创建对象时的痛点 2.建造者模式2.1 被建造类准备2.2.建造者类实现2.3.构建对象测试2.4.使用lombok简化建造者2.5.lombok简化建造者的缺陷 3.总结 1.前言 在我刚入行不久的时候就听说过建造者模式这种设计模式&#xff0c;当时只知道是用来组装对象&#xf…

如何在 Spring Boot 中进行数据备份

在Spring Boot中进行数据备份 数据备份是确保数据安全性和可恢复性的关键任务之一。Spring Boot提供了多种方法来执行数据备份&#xff0c;无论是定期备份数据库&#xff0c;还是将数据导出到外部存储。本文将介绍在Spring Boot应用程序中进行数据备份的不同方法。 方法1: 使用…

K8S:HPA pod水平自动伸缩

文章目录 一.HPA概念1.什么是HPA2.HPA原理 二.部署 metrics-server1.node节点上传镜像包2.master节点安装metrics-server 三.部署 HPA1.所有节点安装镜像2.master创建测试的 Pod 资源3.创建 HPA 控制器4.创建测试客户端容器5.弹性缩容 四.扩展1.资源限制 - Pod①资源限制的原理…

干货|小白也能自制电子相册赶紧码住~

你是否想拥有一个独一无二的电子相册&#xff0c;却又苦于不知道如何下手&#xff1f;今天教你一个简单的方法&#xff0c;即使你是小白&#xff0c;也能轻松自制电子相册&#xff01; 一、选择合适的工具 首先&#xff0c;你需要选择一个合适的工具来制作电子相册。有很多工具…

ubuntu20.04 nerf Instant-ngp

Instant-ngp linux ubuntu 20.04 GPU RTX3050Ti Instant-ngp官方文档地址 https://github.com/NVlabs/instant-ngp 参考链接Instant-ngp linux部署及使用 - 简书 Ubuntu20.04复现instant-ngp&#xff0c;自建数据集&#xff0c;导出mesh_XINYU W的博客-CSDN博客 步骤 安装基…

数据库基础(一)

数据库面试基础 注&#xff0c;本文章内容主要来自于JAVAGUIDE&#xff0c;只是结合网上资料和自己的知识缺陷进行一点补充&#xff0c;需要准备面试的请访问官方网址。 一、范式 参考链接 函数依赖&#xff1a;一张表中&#xff0c;确定X则必定能确定Y&#xff0c;则X->…

[GXYCTF2019]Ping Ping Ping - RCE(空格、关键字绕过[3种方式])

[GXYCTF2019]Ping Ping Ping 1 解题流程1.1 小试牛刀1.2 三种解法1.2.1 解法一:变量定义拼接绕过1.2.2 解法二:base64编码绕过1.2.3 解法三:内联执行绕过2 思考总结1 解题流程 1.1 小试牛刀 1、提示?ip,结合题目名称,我们直接输入?ip=127.0.0.1 PING 127.0.0.1 (127.…

【Spring AOP】统一用户登录校验

统一用户登录校验 一. 使用拦截器实现统一用户登录校验1. 自定义拦截器2. 将拦截器加入到系统配置 二. 拦截器实现原理三. 扩展&#xff1a;统一访问前缀添加 一. 使用拦截器实现统一用户登录校验 Spring 中提供了具体的实现拦截器&#xff1a;HandlerInterceptor&#xff0c;…

数据结构学习笔记——数据结构概论

目录 一、数据与数据元素二、数据类型和抽象数据类型三、数据结构的定义&#xff08;一&#xff09;逻辑结构&#xff08;二&#xff09;存储结构&#xff08;物理结构&#xff09;1、顺序存储结构2、链式存储结构3、索引存储结构4、散列存储结构 &#xff08;三&#xff09;数…