当前位置: 首页 > news >正文

自动化测试框架学习总结

视频:hytest - 测试自动化框架_哔哩哔哩_bilibili

资料:hytest 框架 - 白月黑羽

hytest 简介

hytest (黑羽test)是白月黑羽自己研发的自动化测试框架,它非常适合 做 系统测试 自动化, 而相比之下,pytest、unittest 更适合白盒的单元测试、集成测试。

特别注意,hytest是基于selenium工具的测试框架。语法用的是selenium的语法。

安装:

pip install hytest

运行:在要测试的目标软件的上一级目录使用: python -m hytest.run

结果:会自动生成一个中文版的测试报告。
如果要生成一个英文版的测试报告,只需要加上 --lang =en

用例目录结构:

  • 自动化测试用例 是 写在 python 文件 中的 一个 python 类。对应一个测试用例文档里面的用例
  • 一个 代码文件 可以存放 多个用例

  • 多个代码文件可以用目录组织起来

cases 目录下面的 每个目录 和 py 文件 都 被称之为 测试套件(suite)。测试套件 是 测试用例的集合 , 通俗的说,就是 一组用例 。

总结:要运行登录测试.py,不能通过python运行。而是在hytestProject这级目录的终端,使用pytest命令即可,log目录是使用pytest命令之后生成的目录。
前置环境:创建一个cases目录。 

用例类的定义:

文件里面每个类对应一个用例。类的 name 属性 指定 用例名。若没有name属性,那么类名会被当做用例名称。类的testeps方法 对应测试步骤代码。

# 建议:类名 对应 用例编号
class UI_0101:  //这个是类名UI_0101
    # 测试用例名字,也建议以用例编号结尾,方便 和 用例文档对应
    # 也方便后面 根据用例名称 挑选执行
    name = '管理员首页 - UI-0101'   //name表示测试用例名

    # 测试用例步骤
    def teststeps(self):   //teststeps()方法,是步骤

最常用函数和结构:

from hytest import STEP, INFO, CHECK_POINT

class UI_0101:

    def teststeps(self):

        STEP(1,'打开浏览器')     //声明每个测试步骤
        var1 = 'sdf'
        INFO(f'var1 is {var1}')    //打印信息在日志报告中,
//而使用print是打印在终端中。
        CHECK_POINT('打开成功', var1.startswith('1sd') ) 


        STEP(2,'登录')        
        CHECK_POINT('检查登录是否成功', True)  //声明测试过程中的检查点,
//任何一个测试点不通过就不会继续执行。
//通过CHECK_POINT('即使不通过也不中止',False,failStop=False)可以执行之后的语句

        STEP(3,'查看菜单') 
        CHECK_POINT('检查菜单是否正确', True)

一个例子:

注意,资料上使用的wd.find_element_by_id('username').send_keys('byhy')
这种方式已经淘汰了。

from hytest import *
from selenium import webdriver
from selenium.webdriver.common.by import By


class UI_0101:

    name =  '检查操作菜单 UI_0101'

    def teststeps(self):

        STEP(1,'登录网站')

        options = webdriver.EdgeOptions()
        options.add_experimental_option('excludeSwitches', ['enable-logging'])

        wd = webdriver.Edge(options=options)
        wd.implicitly_wait(10)

        wd.get('http://127.0.0.1/mgr/sign.html')

        wd.find_element(By.ID,'username').send_keys('byhy')
        wd.find_element(By.ID,'password').send_keys('88888888')

        wd.find_element(By.TAG_NAME,'button').click()

        STEP(2,'获取左侧菜单信息')

        eles = wd.find_elements(By.CSS_SELECTOR,'.sidebar-menu li span')

        menuText = [ele.text  for ele in eles]

        INFO(menuText)

        STEP(3,'检查菜单栏')

        CHECK_POINT('左侧菜单检查', menuText[:3] == ['客户','药品', '订单'])

        wd.quit()

执行结果:

公共代码放入库中:

相关文章:

  • 12.31[net]review
  • 力扣刷题——1759.统计同质字符串的数目
  • Spring Boot + MyBatis-Plus 项目目录结构
  • 数据结构——环形数组
  • 数字电子技术基础(二十八)——TTL门电路的静态功耗和动态功耗
  • 查找sql中涉及的表名称
  • 使用位运算如何找到数组中只出现一次的数?
  • docker笔记
  • QEMU源码全解析 —— 块设备虚拟化(3)
  • 如何在需求分析阶段考虑未来扩展性
  • c++介绍函数指针 十
  • 面试高频#LeetCode#Hot100-字母异位词分组
  • Generative Image Dynamics(动态图像生成)
  • uni-app学习笔记——自定义模板
  • 基于 GEE 的城市热岛效应分析——可视化地表温度 LST 与归一化植被指数 NDVI 的关联
  • <03.13>八股文补充知识
  • 24个希腊字母
  • Unity中WolrdSpace下的UI展示在上层
  • AI智能分析网关V4将HTTP消息推送至安防监控视频汇聚EasyCVR平台的操作步骤
  • JAVA面试_进阶部分_dubbo负载均衡策略
  • 建设网站的好处有哪些/朋友圈广告推广平台
  • 专业做尼泊尔的旅行网站/合肥seo管理
  • 中小型网站建设资讯/网站是怎么做出来的
  • seo l/乐云seo官网
  • 原网站备案在哪/宁德市古田县
  • 易联网站制作/2023必考十大时政热点