位置: IT常识 - 正文

Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试)

编辑:rootadmin
Web自动化测试怎么做?Web自动化测试的详细流程和步骤 一、什么是web自动化测试

推荐整理分享Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:webui自动化测试,web自动化测试项目,web自动化测试的常用测试工具,web自动化测试项目,web自动化测试方法,web自动化测试项目,web自动化测试怎么做,web 自动化测试,内容如对您有帮助,希望把文章链接给更多的朋友!

自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

这是教科书里面的自动化的定义,回归到自动化测试其实自动化测试就是什么呢?

指的是测试的过程在没有人或者较少的人为的干预的情况下进行的测试,再简单点说就是用程序或者脚本来测试程序,那么在web自动化测试中主要用来把测试人员从繁琐的内容中解放出来,主要做一些比如需要多次输入,多次运行的,比如我们用边界值,等价类设计的很多测试数据需要执行,比如业务流程需要执行很多遍的时候我们就可以使用web自动化测试

二、web自动化测试的工具

现在主流的web测试工具我们常用的就是selenium的那一套工具包括

浏览器一般选择chrome浏览器对应的driver(chromedriver)PythonSelenium库三、web自动化测试的环境安装浏览器安装 下载浏览器下一步按照就好了chromedriver 下载 可以到 npmmirror.com/注:100的大版本对的上就Ok了

四、web自动化测试的方法

Web自动化测试一般使用设计测试用例的方法跟功能测试相同,使用等价类划分,边界值,因果图,场景法等等就好了

Web自动化测试实施的使用我们一般会采用po模式设计

PO是page object的简称,核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。

PO模式可以把一个页面分为三层,对象库层、操作层、业务层。

对象库层:封装定位元素的方法。

操作层:封装对元素的操作。

业务层:将一个或多个操作组合起来完成一个业务功能。

比如登录:需要输入帐号、密码、点 击登录三个操作。

测试脚本只需要调用业务层代码就可以完成

当出现页面需要的时候只需要测试代码可以完全不用修改只需要修改操作层就好了

五、web自动化测试的流程实施

web自动化测试流程和功能测试基本一致:

下面我们已登录需求为例

(1)需求分析

Web自动化测试怎么做?Web自动化测试的详细流程和步骤(web 自动化测试)

这里我们以手机登录为例

(2)设计测试用例与测试数据

自动化测试测试用例不用像手工测试设计的那么详细

ID测试模块标题前置条件测试输入login_001登录错误的手机号登录网络正常,功能正常手机号错误其他输入项正常

【下方为测试数据】

[ { "username": "21888888888", "pwd": "123456", "code": "8888", "ast_msg": "账号格式不匹配", "desc": "用户名错误" }, { "username": "12888888888", "pwd": "123456", "code": "8888", "ast_msg": "账号格式不匹配", "desc": "用户名错误" }, { "username": "1088888888", "pwd": "123456", "code": "8888", "ast_msg": "账号格式不匹配", "desc": "用户名错误" }, { "username": "138888888889", "pwd": "123456", "code": "8888", "ast_msg": "账号格式不匹配", "desc": "用户名错误" }, { "username": "32888888888", "pwd": "123456", "code": "8888", "ast_msg": "账号格式不匹配", "desc": "用户名错误" }, { "username": " ", "pwd": "123456", "code": "8888", "ast_msg": "用户名不能为空", "desc": "用户名错误" }]

(3)搭建web自动化测试环境

在上面环境安装那里已经搭建了

(4)设计web自动化测试框架

一般测试po模式的内容包括

(5)编写代码

在po文件夹中创建page_login

from selenium.webdriver.common.by import Byfrom utils import UtilsDriverfrom base.page_base import BasePage# 界面对象层 class PageLogin(BasePage): # 账号元素 def find_username(self): return self.driver.find_element_by_id("username") # return self.driver.find_element(*self.username) # return self.get_element(self.username) # 密码元素 def find_pwd(self): return self.driver.find_element(By.ID,"password") # 验证码元素 def find_vcode(self): return self.driver.find_element_by_id("verify_code") # 按钮开始登录元素 def find_login_btn(self): # return self.driver.find_element_by_name("sbtbutton") return self.driver.find_element(By.NAME,"sbtbutton")# 操作层class HandleLogin(object): def __init__(self): self.page_login=PageLogin() def input_username(self,username): self.page_login.find_username().send_keys(username) def input_pwd(self,pwd): self.page_login.find_pwd().send_keys(pwd) def input_vcode(self,code): self.page_login.find_vcode().send_keys(code) def click_login_btn(self): self.page_login.find_login_btn().click()# 业务层# 输入用户名密码验证码 点击登录class LoginProxy(object): def __init__(self): self.handle_login = HandleLogin() def login(self,username,pwd,code): self.handle_login.input_username(username) self.handle_login.input_pwd(pwd) self.handle_login.input_vcode(code) self.handle_login.click_login_btn()

脚本执行代码 创建test_login

# from selenium import webdriverfrom po.page_home import HomeProxyfrom po.page_login import LoginProxyfrom utils import UtilsDriver,get_dataimport timeimport pytestimport allure@allure.feature("登录功能")class Test_login: def setup_class(self): self.login_p=LoginProxy() self.home_p=HomeProxy() def setup(self): # 进入首页 UtilsDriver.get_driver().get("http://127.0.0.1/") # 进入到login界面 self.home_p.go_login_page() def teardown_class(self): time.sleep(2) UtilsDriver.quit_driver() @pytest.mark.parametrize(["username","pwd","code","asrt_msg"],get_data()) @allure.story("登录用户名错误") def test_login_username_error(self,username,pwd,code,asrt_msg): self.login_p.login(username,pwd,code) time.sleep(1) # 登录是否成功的预期结果 res = UtilsDriver.get_msg() assert asrt_msg in res

(6)执行测试用例

可以使用pytest控制测试用例的执行

@pytest.mark.parametrize([“username”,“pwd”,“code”,“asrt_msg”],get_data())

[pytest]addopts = -s --alluredir reporttestpaths = ./scriptpython_files = test_*.py *test.pypython_classes = Test_*python_functions = test_*

(7)生成测试报告

可以使用allure生成测试报告

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助,有需要的朋友你可以关注个人公众号:程序员一凡 获取软件测试资源。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近100个G。

☑ 215集-零基础到精通全套视频课程 ☑ [课件+源码]-完整配套的教程 ☑ 18套-测试实战项目源码 ☑ 37套-测试工具软件包 ☑ 268道-真实面试题 ☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文链接地址:https://www.jiuchutong.com/zhishi/299753.html 转载请保留说明!

上一篇:深度学习--超参数(持续更新)(超参数有哪些调优方法)

下一篇:YOLOV7改进-添加EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU(yolov5增加检测层)

  • 华为识别图片文字的功能在哪(华为识别图片文字手势)

    华为识别图片文字的功能在哪(华为识别图片文字手势)

  • 手机qq消息振动在哪设置(手机qq消息振动提醒怎么关)

    手机qq消息振动在哪设置(手机qq消息振动提醒怎么关)

  • 手机突然没声音(手机突然没声音怎么弄)

    手机突然没声音(手机突然没声音怎么弄)

  • 怎么把一台电脑的文件弄到另一台(怎么把一台电脑里的全部资料转移到另一台电脑里)

    怎么把一台电脑的文件弄到另一台(怎么把一台电脑里的全部资料转移到另一台电脑里)

  • leica是什么相机(徕卡相机app下载)

    leica是什么相机(徕卡相机app下载)

  • 目前大多数以太网使用的传输介质是(目前大多数以太网使用的传输介质是什么和贡献)

    目前大多数以太网使用的传输介质是(目前大多数以太网使用的传输介质是什么和贡献)

  • 腾讯快速会议和预定会议有什么区别(腾讯快速会议和预定会议哪个好)

    腾讯快速会议和预定会议有什么区别(腾讯快速会议和预定会议哪个好)

  • 5g手机流量消耗大吗(5g手机流量消耗太快怎么设置)

    5g手机流量消耗大吗(5g手机流量消耗太快怎么设置)

  • 淘宝直播间为啥没人进来(淘宝直播间为啥抢不了红包了呢怎么回事)

    淘宝直播间为啥没人进来(淘宝直播间为啥抢不了红包了呢怎么回事)

  • 数据的属性类型有哪些(数据的属性类型包括)

    数据的属性类型有哪些(数据的属性类型包括)

  • 云计算本质上是一种信息服务模式对吗(云计算 本质)

    云计算本质上是一种信息服务模式对吗(云计算 本质)

  • 差评多久会生效别的人才能看见(差评多久之后生效)

    差评多久会生效别的人才能看见(差评多久之后生效)

  • 韩版三星note9与国行的区别(三星note9国行和韩版的区别)

    韩版三星note9与国行的区别(三星note9国行和韩版的区别)

  • ipad屏幕跳屏怎么解决(ipad乱跳屏)

    ipad屏幕跳屏怎么解决(ipad乱跳屏)

  • 剪映怎么去除文字水印(剪映怎么去除文字模板的出场动画么)

    剪映怎么去除文字水印(剪映怎么去除文字模板的出场动画么)

  • 什么是京东自营产品(什么是京东自营商品京东卡怎么用)

    什么是京东自营产品(什么是京东自营商品京东卡怎么用)

  • 安卓的耳机ipad能用吗(安卓的耳机模式怎么取消)

    安卓的耳机ipad能用吗(安卓的耳机模式怎么取消)

  • word页面缩小了怎么恢复(word页面小了怎么回事)

    word页面缩小了怎么恢复(word页面小了怎么回事)

  • 指纹锁识别不了指纹怎么办(指纹锁识别不了怎么办)

    指纹锁识别不了指纹怎么办(指纹锁识别不了怎么办)

  • 闲鱼超赞动态怎么删除(闲鱼的超赞在哪里点)

    闲鱼超赞动态怎么删除(闲鱼的超赞在哪里点)

  • 添加脚注怎么设置(添加脚注怎么设置而且是带圆圈的)

    添加脚注怎么设置(添加脚注怎么设置而且是带圆圈的)

  • oppor11通话设置在哪里找(oppor11的通话设置在哪里设置)

    oppor11通话设置在哪里找(oppor11的通话设置在哪里设置)

  • soul怎么添加指定好友(soul怎么加自己的标签)

    soul怎么添加指定好友(soul怎么加自己的标签)

  • 华为x8悬浮按钮咋取消(华为悬浮按钮开关)

    华为x8悬浮按钮咋取消(华为悬浮按钮开关)

  • 转转如何收款(转转的收款方式在哪里)

    转转如何收款(转转的收款方式在哪里)

  • 实际退税额怎么算
  • 小规模纳税人怎么办理
  • 存货跌价准备影响当期损益吗
  • 工伤在门诊的收据能报销吗
  • 缴纳增值税会计账务处理
  • 以前年度多交增值税
  • 销项负数的分录怎么做
  • 企业所得税的成本是含税还是不含税
  • 备用金为什么会变少
  • 货物和运费一起开票怎么开
  • 股票印花税最新政策2023怎么算
  • 企业购入办公桌和办公椅的核算
  • 制造费用属于哪一类科目
  • 购进货物既用于应税项目又用于免税项目的
  • 劳动合同的履行包括什么原则
  • 离职补偿金需要交工会经费吗
  • 固定资产转固流程图
  • 文化建设事业费优惠政策
  • 反向吸收合并账务处理
  • 遇到境外网络勒索敲诈怎么办
  • 以前年度损益调整属于哪类科目
  • 房地产企业土地出让金抵减销项税额
  • 在win10系统中如何找到应用
  • 劳务报酬纳税计算器
  • 专项维修基金会产生利息吗
  • 转让无形资产使用权和所有权的区别
  • 发票是否可以作为收款依据
  • php中imagestring
  • 购买二手车要缴税吗
  • php array_reverse 以相反的顺序返回数组实例代码
  • 如何使用php写一个网页
  • code particle
  • gpt3 plug
  • vue过滤器可以异步吗
  • idea如何运行别人的vue项目
  • 狂神说css笔记
  • 增值税政策执行口径存在的问题及建议
  • 职工探亲如何报差旅费
  • python异常值处理方法
  • 商品试用是否还要回收
  • 税务法新规
  • 普通发票验旧后怎么作废
  • db2入门
  • 给子公司注资怎么做账
  • 收到税务局退回的个税手续费怎么入账
  • 城建税退税流程
  • 注册公司注册公司
  • 固定资产评估减值还是升值
  • 销项税进项税月末怎么处理
  • 申报无票收入后期开票要冲回要备案吗
  • 资产总额的季度平均值
  • 本月收入未开票会计分录
  • 关于职工薪酬的确认和计量下列说法中不正确的是
  • 超过保质期放冰箱还能吃吗
  • 物业安装摄像头的规定
  • 什么是雇主责任险保单
  • 小企业会计准则会计科目表
  • 个人股权激励收入税率
  • 提前还贷款要满十八岁吗
  • 保洁阿姨工资怎么扣税
  • 合伙企业应该用什么会计制度
  • ubuntu 16.04.6安装教程
  • 虚拟机怎么安装VMware Tools
  • win7更改电脑设置在哪里
  • centos安装教程详解
  • centos权限不够怎么办
  • macbook的dock栏怎么不见了
  • win10输入框在哪里
  • linux系统怎么快速查找文件
  • linux各种重定向及其含义
  • win8安装盘
  • Win10 Mobile 10586.242累积更新上手视频评测
  • win10非正常关机系统修复
  • gin项目
  • Android alertDialog 动态添加edittext无法弹出键盘解决方案
  • 如何查询企业出资时间
  • 电子签章在电脑上怎样加印章
  • 螺丝钉的税率
  • 纳税申报的期限是多久
  • 江苏地方税务局电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设