基于sahi的UI自动化测试框架

基于sahi pro excelframework自动化测试框架设计

1.概述

1.1.开发背景

电子印章系统需要进行自动化测试功能,且需要一种易于开发、维护、使用的自动化测试工具。Sahi pro版本相比开源版本已经自带excelframework,既直接通过excel文件执行自动化测试用例。

1.2.建设目标

目标1:普通测试员通过编写excel测试模板,生成自动化测试用例,直接执行自动化测试用例,实现自动化测试。
目标2:测试开发员可以灵活的修改、扩展、完善自动化测试框架。
目标3:测试开发员可以所见即所得、高效、快速的编写完善自动化测试框架。

1.3.假定和约束

本版本设计开发必须遵循JavaScript和Sahi脚本的开发规范。

2.框架流程设计

2.1.测试框架

测试框架由四层架构组成:sahiproexcelframework,业务逻辑层,页面对象库,基础控件库。
Sahiproexcelframework:将测试步骤(关键字)和测试数据直接保存在excel里,实现数据与脚本分离。由于excelframework需要调用方法而不是对象,所以需要一个中间层做把业务逻辑层的对象转换成方法。
业务逻辑层:可以在这里编写可重用的方法,这些方法中执行模拟手工测试的功能。该层的方法可以被测试用例调用。
页面对象库:用来获取、存储页面对象。每个页面对象也许包含多个控件对象,该层对象可以被业务逻辑层调用。
基础控件库:封装基础的页面控件对象。对于操作复杂的页面控件再进行封装以方便使用,该层对象可以被页面对象库调用。
图1. 测试框架图
架构图

3.框架使用说明

3.1.Excel模板说明

Excel模板作为描述自动化测试用例、测试步骤、测试数据的载体,严格按照模板编写将会避免很多可能出现的错误。脚本在执行的时候默认读取Excel模板里的sheet1内的数据,按照从上到下的顺序逐行执行关键字对应的脚本。所以可以在excel里新建其他sheet,但是不要修改sheet1的名字或删除sheet1,否则会导致无法执行脚本。
这里写图片描述
Excel模板里的每一行代表一个测试步骤,多行可以组成一个测试用例。
这里写图片描述
现对sheet1内的数据列的含义和使用做如下说明:
Comments(描述):该列可以录入对该测试步骤的描述用来标记这一步骤,该列可以为空。
Tags(标签):该列可以用标签对测试用例进行标记,在执行脚本时可有选择性的执行用例。所以仅在测试用例第一个测试步骤上些标签。如

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SAHI是一种切片辅助推理框架,旨在帮助开发人员解决现实世界中的目标检测问题。它通过将图像分成多个切片来提高检测性能,从而克服了现实世界中的一些问题,例如目标尺寸变化,目标遮挡和目标密度变化等。SAHI的核心思想是将图像分成多个切片,然后对每个切片进行单独的检测,最后将检测结果合并起来得到最终的检测结果。这种方法可以提高检测性能,特别是对于小目标的检测效果更好。 下面是一个使用SAHI进行目标检测的Python代码示例: ```python import cv2 import numpy as np # 加载图像 img = cv2.imread('test.jpg') # 定义切片大小 slice_size = 512 # 获取图像大小 height, width, _ = img.shape # 计算切片数量 num_slices_h = int(np.ceil(height / slice_size)) num_slices_w = int(np.ceil(width / slice_size)) # 定义检测器 detector = cv2.dnn.readNetFromCaffe('deploy.prototxt', 'model.caffemodel') # 定义类别标签 class_labels = ['person', 'car', 'truck', 'bus'] # 定义检测结果列表 results = [] # 循环遍历每个切片 for i in range(num_slices_h): for j in range(num_slices_w): # 计算切片的坐标 x1 = j * slice_size y1 = i * slice_size x2 = min(x1 + slice_size, width) y2 = min(y1 + slice_size, height) # 提取切片 slice_img = img[y1:y2, x1:x2] # 构建输入blob blob = cv2.dnn.blobFromImage(slice_img, 1.0, (300, 300), (104.0, 177.0, 123.0)) # 进行检测 detector.setInput(blob) detections = detector.forward() # 解析检测结果 for k in range(detections.shape[2]): confidence = detections[0, 0, k, 2] class_id = int(detections[0, 0, k, 1]) # 如果置信度大于0.5,则将检测结果添加到列表中 if confidence > 0.5 and class_labels[class_id] == 'person': x = int(detections[0, 0, k, 3] * slice_size) + x1 y = int(detections[0, 0, k, 4] * slice_size) + y1 w = int(detections[0, 0, k, 5] * slice_size) - x h = int(detections[0, 0, k, 6] * slice_size) - y results.append((x, y, w, h)) # 在原始图像上绘制检测结果 for (x, y, w, h) in results: cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) # 显示结果 cv2.imshow('result', img) cv2.waitKey(0) cv2.destroyAllWindows() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值