httprunnet自动化测试实战

引言

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

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

自动化测试的好处

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

自动化测试工具的选择

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

httprunner pytest
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:
httprunnet自动化测试实战_第1张图片
运行用例,生产测试报告

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文件作为依赖
httprunnet自动化测试实战_第2张图片
用例增强-一个用例中变量导出给其他用例使用
在用例中使用关键字export导出需要给其他用例使用的变量
在这里插入图片描述
在新用例中引用变量
httprunnet自动化测试实战_第3张图片

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

本地集成思路
目的:将每次执行的自动化结果更新到测试平台展示
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()

前端代码