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 = dirpath


    def remove_file(self):
        path = self.dir
        files = 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()
    # 改名report
    do.rename_file()
    # 移动report
    do.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>
    <iframe
      ref="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 = true
      run_case_list({}).then(res => {
        this.loadflag = false
        this.$message({ message: '用例运行完成', type: 'success' })
      })
    }
  }
}
</script>
<style scoped>
.iframe_box{
background: #f5f3f3;
    width: 100%;
    height: 1000px;
}
</style>

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

$团长$

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值