位置: 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增加检测层)

  • 负债与所有者权益比率
  • 多交企业所得税可以放弃退税吗
  • 小微企业开专票税率是1%还是3%
  • 个人所得税10月突然增加了
  • 利润表的调整
  • 小规模企业所得税税率多少
  • 苗木种植发票免增值税吗
  • 快递费专票可以报销吗
  • 个体工商户可以给员工交社保吗
  • 会计利润包不包括营业外支出
  • 收到公司退货会计分录
  • 出口发票税率是怎么算的
  • 应付利润是会计科目吗
  • 用友t3修改帐套怎样修改企业会计准则
  • 汽车销售服务费话术
  • 发票没用完可以领发票吗
  • 记账凭证和转账凭证可以装订在一起吗
  • 议价收购股份的账务处理
  • 总分机构类型怎么选
  • 处置其他权益工具投资会影响当期损益吗
  • 收入可以用收据入账吗
  • 本期金额怎么计算
  • 签订旅游合同的意义
  • 有哪些方法可以判断乳剂的类型
  • 1697510586
  • 个税经营所得申报怎么更正
  • 是否填写国家统计局一套表
  • 预售房款预缴企税怎么算
  • 未担保余值的账户怎么查
  • 上市公司发行债券股价会涨吗
  • 公司作为股东有什么好处
  • 木卫一距离木星多远
  • php调试工具哪个好用
  • 跨区域涉税事项报告表在哪里打印
  • vue中使用nodejs
  • php添加
  • php-xml
  • 应收票据确认坏账怎么处理
  • 住宿费电子发票没有章
  • JavaScript数组(四):判断数组相等的4种方法
  • html动画教程
  • linux ar命令
  • 小规模纳税人能开6%增值税专用发票吗
  • Discus X 3 门户改造熊掌号网页教程
  • 接待客户的住宿费计入什么科目
  • 盈余公积转增资本所有者权益会变吗
  • 财产租赁合同印花税双方都要交吗
  • 固定资产清理残料收入
  • mysql复制粘贴
  • 凭证字号和凭证编号一样吗
  • 清算中的资产损失
  • 股东分红申报个税怎么填
  • 发票税额不全能抵扣吗
  • 运输费用如何做账
  • 进口产品没有发票怎么入账
  • 股东之间资金往来
  • 应收股利在资产负债表中怎么填
  • 银行回单超过三个月可以补打吗
  • 什么情况下可以安排待岗
  • 可转换债券是什么资本
  • mysql中删除表中的数据
  • sql合并多行到一列
  • 数据库的常用语句
  • linux vs windows
  • qq空间好友评论别人看不到
  • win8.1无法进入系统
  • 空磁盘为什么有已用空间
  • win7系统电脑硬盘图标变了,控制面板也打不开
  • win7插u盘电脑没反应怎么回事
  • win7打开文件总是询问
  • unix2dos linux实现
  • gridview获取列数据
  • 你不一定知道的地方
  • 虚拟机中使用keil
  • jquery return
  • JavaScript中的math.pi
  • javascript怎么学好
  • jquery的核心函数
  • 浅谈如何实现乡村振兴论文
  • twist python
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设