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

如何做网站 seo企业目录

如何做网站 seo,企业目录,把网站做成app,金阊公司网站建设电话前言1、设计用例方法关键字1.1、获取元素属性值2.1、断言2、代码实现2.1、实现获取元素属性值2.1.1 函数实现2.1.2 方法配置2.1.2 用例调试2.1.3 html属性2.2、实现断言2.2.1 函数2.2.2 方法配置2.2.3 用例调试1)断言结果成功2)断言结果失败前言 本文的…

  • 前言
  • 1、设计用例方法关键字
    • 1.1、获取元素属性值
    • 2.1、断言
  • 2、代码实现
    • 2.1、实现获取元素属性值
      • 2.1.1 函数实现
      • 2.1.2 方法配置
      • 2.1.2 用例调试
      • 2.1.3 html属性
    • 2.2、实现断言
      • 2.2.1 函数
      • 2.2.2 方法配置
      • 2.2.3 用例调试
        • 1)断言结果成功
        • 2)断言结果失败

前言

本文的方法针对下面文章的框架而写
https://blog.csdn.net/weixin_40331132/article/details/106482043
框架源码下载:
https://download.csdn.net/download/weixin_40331132/85580645
框架源码中没有包含本文代码,请自行按照本文的步骤添加断言方法
针对这编文章中自动化框架的断言,很多人问我如何实现,当时写博客时没考虑断言场景,只是把框架搭建完成,让大家自行扩展,现在我在这里将如何实现断言详细步骤输出。

相信完整的学习完这个内容之后,应该更加熟练的自由扩展这个自动化框架了。

下面是断言用例的一个初如设计方案
在这里插入图片描述

如上图所示,实现断言,需要先获取断言对象的相关属性的值,然后通过对属性的值进行相关校验。来判断用例是否执行成功。

效果视频:

Web自动化框架断言实现

具体实现请仔细阅读后续。

1、设计用例方法关键字

1.1、获取元素属性值

在这里插入图片描述

获取元素属性值内容:

type,localtor,index这三个参数可以将目标元素定位到
value参数传入attribute(属性)类型,通过这个参数来取对应属性的值
返回参数是result 获取元素的value值,然后存放到 ${xxxxx}变量中,图中变量就是 ${attr_value}
${attr_value},后面的用例行可以使用到,不理解可自行搜索自动化测试中的参数化知识点,此处不过多解释

2.1、断言

在这里插入图片描述

断言的内容

参数type,断言对像的数据类型,float(浮点型),int(整形 ),string(字符串)
参数locator, 断言方式:相等、不相等, 大于,小于
参数input, 断言对象,可以参数化
参数check, 判断值
逻辑就是通过 对断言对象 与 判断值 它俩是不是相等(或其它方式判断)得出结论用例是否通过

2、代码实现

2.1、实现获取元素属性值

在这个框架里面实现 ’获取元素属性值‘方法分三步骤
1、在webdriveroperator.py文件 WebdriverOperator 类里添加一个函数get_element_attribute_value实现业务代码
2、将函数在base.ini配置成方法关键字
3、编写用例调试功能

2.1.1 函数实现

编写下面代码之前,先在webdriveroperator.py添加两个import

#用来辅助联元素的方法
from selenium.webdriver.remote.webelement import WebElement
#存放变量的单例类
from basefactory.customfunctiontor import CaseData

在webdriveroperator.py文件 WebdriverOperator 类添加函数get_element_attribute_value
代码如下:

   def get_element_attribute_value(self, **kwargs):'''获取元素属性值kwargs:result: 存放获取到元素值的变量type: 定位器类型locator:元素定位器index:元素序号'''try:res_params = kwargs['result']type = kwargs['type']locator = kwargs['locator']attr_name = kwargs['input']except KeyError:return False, '[获取元素属性值]缺少传参'try:index = kwargs['index']except KeyError:index = 0#先通过已有的获取元素方法获取到元素isOK, result = self.find_element(type, locator, index)#获取元素失败,将失败原因返回if isOK is False:return isOK, resultelement: WebElement = resulttry:value = element.get_attribute(attr_name)    #获取元素的属性值setattr(CaseData, res_params, value)    #将获取到的属性值 存放到 res_params 里去except Exception as e:return False, '[获取元素属性值]执行失败,具体原因:【{}】'.format(str(e))return True, '[获取元素属性值]执行成功,已将元素【{}】的【{}】属性值【{}】存放到变量中'.format(locator, attr_name, value)

2.1.2 方法配置

在base.ini的【Function】下添加一行

获取元素属性值 = get_element_attribute_value

在这里插入图片描述

2.1.2 用例调试

编写用例:

在这里插入图片描述

idresultkeywordtypelocatorindexinputchecktime
1打开网页urlhttps://www.baidu.com
2等待元素可见xpath//*[@id=“kw”]3
3输入xpath//*[@id=“kw”]飞人
4调用用例common-bai
5点击xpath//*[@id=“su”]
9attr_value获取元素属性值xpath//*[@id=“su”]value

直接看第9行用例,它表示:
获取 //*[@id=“su”] (百度按钮)的value 属性的值,存放到变量${attr_value}中

运行框架的入口文件 test_run.py
它自动运行,最终结果如下图
在这里插入图片描述

查看运行日志
在这里插入图片描述

调试成功,

2.1.3 html属性

html有很多属性,如下图(这时不一定全面)
里面红框标记的属性,都可以获取一些文字或数据,全部可以用来断言,要获取对应属性的值,只需要编写用例时,使用’获取元素属性值’,在input字段给出对应的属性名即可。
在这里插入图片描述

接下来可以实现断言方式了

2.2、实现断言

在这个框架里面实现 ’断言‘方法分三步骤
1、在webdriveroperator.py文件 WebdriverOperator 类里添加一个函数case_assert实现业务代码
2、将函数在base.ini配置成方法关键字
3、编写用例调试功能

2.2.1 函数

函数里需要两层判断,

第一层判断,断言对象的数据类型,不同数据类型,断言方式里的实现代码不相同
第二层判断,断言方式,针对不同的判断方式,写出不同逻辑代码与断言结果

在webdriveroperator.py文件 WebdriverOperator 类里添加函数case_assert
代码如下:

	def case_assert(self, **kwargs):'''断言kwargs:type:断言对像的数据类型,float(浮点型),int(整形 ),string(字符串)locator: 断言方式:相等、不相等, 大于,小于input: 断言对象check: 判断值desc:通过 对断言对象 与 判断值 它俩是不是相等(或其它方式判断)得出结论用例是否通过'''try:type = kwargs['type']ass_func = kwargs['locator']ass_obj = str(kwargs['input'])check = str(kwargs['check'])except KeyError:return False, '缺少传参'try:if str.lower(type) == 'string':if ass_func == '相等':isOK, result = (True, '[断言]结果成功,断言对象【{}】与判断值【{}】相等'.format(ass_obj, check)) \if ass_obj == check else \(False, '[断言]结果失败,断言对象【{}】与判断值【{}】不相等'.format(ass_obj, check))elif ass_func == '不等于':isOK, result = (False, '[断言]结果失败,断言对象【{}】与判断值【{}】相等'.format(ass_obj, check)) \if ass_obj == check else \(True, '[断言]结果成功,断言对象【{}】与判断值【{}】不相等'.format(ass_obj, check))elif ass_func == '包含':isOK, result = (True, '[断言]结果成功,断言对象【{}】与包含判断值【{}】'.format(ass_obj, check)) \if check in ass_obj else \(False, '[断言]结果失败,断言对象【{}】与不包含判断值【{}】'.format(ass_obj, check))else:isOK, result = False, '[断言]执行失败,断言【{}】方法不正确,请给出正确的断言方法'.format(ass_func)elif str.lower(type) == 'int' or str.lower(type) == 'float':ass_obj, check = int(ass_obj), int(check) if str.lower(type) == 'int' else float(ass_obj), float(check)if ass_func == '相等':isOK, result = (True, '[断言]结果成功,断言对象【{}】与判断值【{}】相等'.format(ass_obj, check)) \if ass_obj == check else \(False, '[断言]结果失败,断言对象【{}】与判断值【{}】不相等'.format(ass_obj, check))elif ass_func == '不等于':isOK, result = (False, '[断言]结果失败,断言对象【{}】与判断值【{}】相等'.format(ass_obj, check)) \if ass_obj == check else \(True, '[断言]结果成功,断言对象【{}】与判断值【{}】不相等'.format(ass_obj, check))elif ass_func == '大于':isOK, result = (True, '[断言]结果成功,断言对象【{}】大于判断值【{}】'.format(ass_obj, check)) \if ass_obj > check else \(False, '[断言]结果失败,断言对象【{}】不大于判断值【{}】不相等'.format(ass_obj, check))elif ass_func == '小于':isOK, result = (True, '[断言]结果成功,小于对象【{}】大于判断值【{}】'.format(ass_obj, check)) \if ass_obj < check else \(False, '[断言]结果失败,断言对象【{}】不小于判断值【{}】不相等'.format(ass_obj, check))else:isOK, result = False, '[断言]执行失败,断言【{}】方法不正确,请给出下确的断言方法'.format(ass_func)else:isOK, result = False, '[断言]执行失败,原因【{}】类型不存在,请给出正确的数据类型'.format(type)except Exception as e:isOK, result = False, '[断言]执行失败,具体原因:【{}】'.format(str(e))if isOK is False:result += '。截图路径:' + self.get_screenshot_as_file()return isOK, result

2.2.2 方法配置

在base.ini的【Function】下添加一行

断言 = case_assert

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FL4OtLnZ-1679198396310)(en-resource://database/1031:1)]
没配置方法,在用例中使用’断言‘,会提示’断言方法未注册‘
配置完成后,便可以在用例中使用’断言‘方法了

2.2.3 用例调试

下面演示断言成功与失败的两个案例

1)断言结果成功

编写用例如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-buaOhl2s-1679198396311)(en-resource://database/1033:1)]

用例(将图中的注释用例清掉版本):

idresultkeywordtypelocatorindexinputchecktime
1打开网页urlhttps://www.baidu.com
2等待元素可见xpath//*[@id=“kw”]3
9attr_value获取元素属性值xpath//*[@id=“su”]value
10断言string相等${attr_value}百度一下

执行框架入口文件 test_run.py,浏览器结果:
在这里插入图片描述

执行日志:
在这里插入图片描述

测试报告:
在这里插入图片描述

2)断言结果失败

将第id为10的用例的check改成 ’百度一下吧‘
用例如下:

idresultkeywordtypelocatorindexinputchecktime
1打开网页urlhttps://www.baidu.com
2等待元素可见xpath//*[@id=“kw”]3
9attr_value获取元素属性值xpath//*[@id=“su”]value
10断言string相等${attr_value}百度一下吧

执行结果 ,浏览器:
在这里插入图片描述

执行日志:
在这里插入图片描述

测试报告
在这里插入图片描述

调试断言成功,string字符类型的断言很稳定
至于int 与 float数据类型,看官们自己去用吧,用出问题可自行优化。
至此,断言方法已经实现。

本文也是复习了框架扩展新方法的知识点,学会了扩展即掌握了这个框架的精髓。

http://www.yayakq.cn/news/719803/

相关文章:

  • 告诉搜索引擎网站建设中百度怎么推广广告
  • 网站建设后如何修改用瀑布流做的美食网站
  • 自助建站平台源码丰县徐州网站开发
  • 房产信息查询系统官方网站凡客衬衫官方网站
  • 百元做网站手机商务彩铃制作教程
  • 山东网站备案公司吗企业网址查询入口
  • 彩票做网站犯法吗哪个兄弟给个地址呀
  • 做外贸在那些网站找业务网站建设视频百度网盘
  • 江苏建设工程标准网站山东平台网站建设平台
  • asp服装商城网站源码驾校官方网站 模板
  • 网站建设实训体会深圳市建筑工程
  • 网站建设需要考哪些证黄石市城市建设档案馆网站
  • 去除wordpress主题底部信息谷歌关键词排名优化
  • 签订网站制作协议需注意什么wordpress主题子主题运行速度
  • 电子商务基础网站建设与维护单项选择题动漫视频网站html模板
  • 网站关键字统计lovefort表白网站制作
  • 济南市住房和城乡建设局网站电子商务网站建设与完整实例
  • 网站未备案做经营被罚款北京市网站建设公司排名
  • 网站开发人员的职责wordpress js丢失
  • 辽宁省网站备案要求可以做任务的创意设计网站
  • 做网站大概要花多少钱数据库网站制作
  • 自己做的网站别人怎么访问百度网站开发业务
  • 网站建设属于哪类工作自己在线制作logo免费u钙网
  • 网站一级域名整个网站都在下雪特效怎么做
  • 池州市网站建设html图片素材
  • 商务网站开发的工作任务小说网站如何建设
  • 有自己域名主机怎么做网站网页设计实验报告代码
  • 吴忠市建设局网站开发框架有哪些
  • 苏州做网站最好公司有哪些wordpress播放pdf
  • 网站如何做流媒体网站设置手机才能播放