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

济宁网站建设云科网络沈阳建设网站费用

济宁网站建设云科网络,沈阳建设网站费用,win2003 做网站服务器,广告设计是做什么的1.关键字驱动解析 所谓的关键字驱动#xff0c;本质就是函数封装的过程。 ⾃动化当中的封装⽬的是#xff1a;拆分重复的⾏为代码和测试数据#xff0c;增加可维护性和复⽤性 我们想要定义一个工具类 # 定义工具类#xff08;基于基础的方法#xff0c;进行的关键…1.关键字驱动解析 所谓的关键字驱动本质就是函数封装的过程。 ⾃动化当中的封装⽬的是拆分重复的⾏为代码和测试数据增加可维护性和复⽤性 我们想要定义一个工具类         # 定义工具类基于基础的方法进行的关键字封装 class WebKeys:# 这个里面可以封装很多的web自动化的方法# 通过构造函数来接受driver对象def __init__(self, driver): # driver是为了后面再用的时候传入浏览器的对象# 浏览器的初始化self.driver driver# 打开项目地址def open(self, url):self.driver.get(url)# 元素定位的方式一driver.find_element(By.ID, txtUName).send_keys(17798989898)# 元素定位的方式二driver.find_element(id, txtUName).send_keys(17798989898)# 元素定位def locator(self, method, value):# 引用for循环去循环判断是否定位元素成功# 获取原始的元素之后再去获取他里面的动态熟悉el self.driver.find_element(method, value)# 将定位的元素标记出来self.locator_station(el)return el# 把定位到的元素标记颜色def locator_station(self, el):self.driver.execute_script(arguments[0].setAttribute(style,arguments[1]);,el,border: 2px solid red; # 边框、red红色、green绿色)再之后,我们新建conftest文件,用来运行前置后后置对象 import pytest from selenium import webdriverpytest.fixture def browser():# 01 用例的前置操作driver webdriver.Chrome()# 02 用例执行返回driveryield driver# 03 用例的后置操作关闭浏览器driver.quit()然后我们就可以开始写测试用例 import time关键字封装之前的测试用例写法 # def test_login01(browser): # 因为browser现在就是返回的driver对象 # # 准备测试数据 # username 17798989898 # password 123456 # # # 打开项目地址 # browser.get(http://novel.hctestedu.com/user/login.html) # # # 进行登录操作 # browser.find_element(id, txtUName).send_keys(username) # 输入账号 # browser.find_element(id, txtPassword).send_keys(password) # 输入密码 # browser.find_element(id, btnLogin).click() # 点击登录关键字封装之后的测试用例写法 from day9.p01_关键字驱动解析.key_word.key_cncap import WebKeysdef test_login02(browser): # 因为browser现在就是返回的driver对象# 准备测试数据username 17798989898password 123456# 初始化工具类wk WebKeys(browser)# 打开项目地址# browser.get(http://novel.hctestedu.com/user/login.html)wk.open(http://novel.hctestedu.com/user/login.html)# 进行登录操作# browser.find_element(id, txtUName).send_keys(username) # 输入账号# browser.find_element(id, txtPassword).send_keys(password) # 输入密码# browser.find_element(id, btnLogin).click() # 点击登录wk.locator(id, txtUName).send_keys(username) # 输入账号wk.locator(id, txtPassword).send_keys(password) # 输入密码time.sleep(3)wk.locator(id, btnLogin).click() # 点击登录2.数据驱动与数据分离--yaml⽂件驱动 数据驱动类型⽀持: 将测试过程中所有测试数据进⾏提取、保存以及管理提升框架的可维护性⽀持                    Excel、Yaml、JSON、Py..... yaml数据驱动                         安装依赖包:pip install pyyaml -i https://mirrors.aliyun.com/pypi/simple/ yaml⽂件写法 - 表示 list标签 : 表示dict标签 准备数据:         # data.userData.yaml - username: 18894687777 passwd: 123456 - username: 13995245568 passwd: 123456 - username: 14713374348 passwd: 123456 读取yaml数据 # data_driver.yaml_driver.py import yaml def load_yaml(path): file open(path, r, encodingutf-8) data yaml.load(file, Loaderyaml.FullLoader) return data 测试yaml⽂件读取 # data_driver.yamlReadTest.py from data_driver.yaml_driver import load_yaml content load_yaml(../data/userData.yaml) print(content) 动态化测试⽤例的⽣成与断⾔数据的⽣成 import timeimport pytest from day9.p02_数据驱动与数据分离.data_driver.yaml_driver import load_yaml from day9.p01_关键字驱动解析.key_word.key_cncap import WebKeyspytest.mark.parametrize(data, load_yaml(r./data/userData.yaml)) def test_login02(browser, data): # 因为browser现在就是返回的driver对象# 准备测试数据print(data: , data)username data[username]password data[password]# 初始化工具类wk WebKeys(browser)# 打开项目地址wk.open(http://novel.hctestedu.com/user/login.html)# 进行登录操作wk.locator(id, txtUName).send_keys(username) # 输入账号wk.locator(id, txtPassword).send_keys(password) # 输入密码time.sleep(3)wk.locator(id, btnLogin).click() # 点击登录我们在data中放入三三个数据,通过这种方式,我们可以一口气执行将三个账户都执行测试用例 3.POM封装思想解析 含义POMPage Object Model的主要⽬标是将测试代码和⻚⾯对象的实现代码分离以提⾼测试代码的可维护性和可读性        PO设计模式具有以下优点: PO就是以每个⽹⻚或者⽹⻚中的组件为单位进⾏⾃动化代码的维护可以和关键字驱动结合起来进⼀步提⾼代码的 可维护性 和 复⽤性 封装业务流程模块 import timefrom selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as ecfrom day9.p04_POM优化元素定位分离.key_word.key_cncap import WebKeys封装登录的方法因为很多用例都需要登录实际的项目中这个板块(page模块)是要结合项目的实际情况的 class LoginPage(WebKeys):# 登录方法def login(self, url, username, password):# 打开项目地址self.open(url)# 进行登录操作self.locator(id, txtUName).send_keys(username) # 输入账号self.locator(id, txtPassword).send_keys(password) # 输入密码time.sleep(3)self.locator(id, btnLogin).click() # 点击登录# 判断是否登录成功wait WebDriverWait(self.driver, 5)# 根据首页是否会出现username作为判断条件wait.until(ec.text_to_be_present_in_element((xpath, //*[idheaderUserInfo]/span/a[1]), str(username)))隔离测试数据(VRA) 把那些全局的变量都可以写在这里(通过大小写区分是全局的还是局部的)LOGIN_URL http://novel.hctestedu.com/user/login.html HOME_URL http://novel.hctestedu.com/?m24.POM优化元素定位分离 问题⻓流程复杂业务⻚⾯元素封装界定不清 ⽅案将⻚⾯元素抽离出来集中管理加编号加前缀⽅便搜索查找避免重复 封装元素定位属性模块(locate): 元素定位的方法和值 登录页面的元素username_el [id, txtUName] # 输入账号 password_el [id, txtPassword] # 输入密码 login_el [id, btnLogin] # 点击登录首页的元素home_login_el [xpath, //*[idheaderUserInfo]/span/a[1]]作家专区的元素元素定位属性封装后的登录模块封装示例 import timefrom selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as ec from day9.p04_POM优化元素定位分离.locate.allPages import * from day9.p04_POM优化元素定位分离.key_word.key_cncap import WebKeys封装登录的方法因为很多用例都需要登录实际的项目中这个板块(page模块)是要结合项目的实际情况的 class LoginPage(WebKeys):# 登录方法def login(self, url, username, password):# 打开项目地址self.open(url)# 进行登录操作self.locator(username_el[0], username_el[1]).send_keys(username) # 输入账号self.locator(password_el[0], password_el[1]).send_keys(password) # 输入密码time.sleep(3)self.locator(login_el[0], login_el[1]).click() # 点击登录# 判断是否登录成功wait WebDriverWait(self.driver, 5)# 根据首页是否会出现username作为判断条件wait.until(ec.text_to_be_present_in_element((home_login_el[0], home_login_el[1]), str(username)))5.知识补充(eval函数的使⽤) 官⽅解释将字符串str当做有效的表达式来求值并返回计算结果 a [[1, 2], [3, 4], [5, 6]] # print(type(a)) # print(type(eval(a))) # print(eval(a)) # print(eval(a)[0])b {a: 1, b: 2} print(type(b)) print(type(eval(b))) print(eval(b)) print(eval(b)[a])
http://www.zqtcl.cn/news/207501/

相关文章:

  • 网站开发免费视频教程网站备案帐号是什么情况
  • 知名门户网站小程序页面设计报价
  • 蒲城矿建设备制造厂网站喀什哪有做网站的
  • 网站内页产品做跳转三合一商城网站
  • 做网站找不到客户兰州 网站制作
  • 广州中小学智慧阅读门户网站中山网站建设方案推广
  • 长沙网站建设专家排行榜
  • 清河企业做网站wordpress淘宝客插件开发
  • 网站上传连接失败的原因微信app网站建设
  • 服装网站源码php建设厅网站合同备案在哪里
  • o2o网站建设多少钱公司设计网站定制
  • asp.net 企业网站后台管理系统源码中国vs菲律宾
  • 成都家装排名前十名wordpress优化方法
  • 南阳做网站公司网站开发服务费分录
  • 网络课程网站建设龙岩个人小程序开发
  • 上海网络推广报价seo技术培训机构
  • 在线看免费网站哪个设计培训机构好
  • 网站建设制作确认单网站建设策划书格式及范文
  • framework7做网站如何在社交网站做销售
  • dedecms_v5.6室内装饰设计公司企业网站模板.rarwordpress添加3d地图吗
  • 开发网站的意义百度推广计划
  • 网站设计师网站网站建设从入门到精通pdf
  • 游戏网站建设方案百度文库wordpress调用搜索框
  • 京东物流网站建设特点网站开发与维护岗位说明书
  • 制作一个网站的基本步骤星巴克网站建设ppt
  • 搭建企业网站宽带多大php微信公众号开发教程
  • 国家建设公债拍卖网站新手如何自己建网站
  • 网站建设颊算网站注册界面代码
  • 微信h5网站模板下载百姓网征婚
  • 模板网站和插件有哪些河南第一火电建设公司网站