ui自动化相关知识点

selenium

1、8大元素定位

id name class_name xpath css tag_name link_text partail_link_text

xpath

1)绝对路径定位 以/开头

2)相对路径 以//开头

a) 相对路径+索引定位 找到唯一标签,往下依次找//form/span/input[1]

b) 相对路径+属性定位

//input[@name="wd"] 从input标签中去找唯一的属性定位

c)相对路径+通配符定位

//*[@name="wd"]从当前页面所有标签中去搜索该属性

//*[@*="wd"]从当前页面所有标签和所有属性中去找属性=“wd”的元素

d) 相对路径+部分属性值定位

//input[satrt_with(@name,'w')]查找标签属性name以‘w’开头的元素

//input[substring(@name,1)='d']以XX结尾

//input[contains(@name,'w')包含

e) 相对路径+文本定位

//span[text()="按图片搜索"]

css:

1、绝对路径(不用)

2、通过ID和CLASS定位

3、通过属性定位

4、通过部分属性定位

5、查询子元素定位

6、查询兄弟节点定位

框架:

frame:

进入框架swith_to.frame("frame名称")

跳出框架swith_to.default_content()

下拉选择:

实例化select(元素定位)

sel = select(driver.find_element(By.ID,"xxx"))

sel.select_by_visible(“你好”)文本

sel.select_by_index(“2”)下标

文件上传:

driver.find_element(By.NAME,"xxxxx").send_keys(r"文件路径")

处理弹窗:

alert(只有确定),confirm(有确定也有取消),pormpt(除了确认/取消还可以输入)

实例化弹窗

ale = driver.switch_to.alert

ale.dismiss()取消

ale.accept()确认

ale.text()获取文本

ale.send_keys()输入值

这些操作跟上面的弹窗类型需要一一对应

列表操作元素所有都一样,可以通过find_elements(By.NAME."标签属性")获取一个list,然后通过下标去取值

例子:列表删除操作

del_list =find_elements(By.NAME."标签属性")

if len(del_list) > 0:

del_list.click()

else:

print("no messge")

设计模型(框架)

Pom模式+关键字驱动

pom模式:page object model

分三层:

1、基础层:base 主要放selenium原生方法;

2、页面层:po 主要用于放页面原素和页面的动作;

3、用例层:testcase 存放测试用例及测试数据

页面层调用基础层;用例层调用页面层

unittest前后置处理(夹具)

setup在测试用例之前的准备工作

teardown在测试用例结束后的收尾工作

断言:

self.assertEqual() 判断两个值是否相等

self.assertTrue() 判断一个值是否为True

self.assertIn() 包含,判断一个值是否在另一个值里边

一、DDT+EXCEL数据驱动

DDT使用方法

@ddt 装饰类,作用是申明当前类使用DDT数据驱动

@data 装饰函数,作用是给函数传值

@unpack 装饰函数,作用是数据解包

@file_data 装饰函数,作用是直接读取yaml、json文件

二、pytest

默认规则:

1、模块名必须以test_开头,或者_test结尾;

2、测试类必须以Test开头,并且不能有init方法;

3、测试方法必须以test开头

pytest主文件运行及allure报告生成

# 生成json格式临时文件

pytest.main(['-vs', './testcase', '--alluredir', './temp', '--clean-alluredir'])

# 根据json格式临时文件生成allure报告

os.system('allure generate ./temp -o ./report --clean')

pytest.ini文件 核心配置文件

1、位置:项目根目录

2、编码:必须是ANSI,可以使用notpad++修改编码模式

3、作业:改不pytest的默认行为

4、运行规则:不管是主函数的模式运行,还是命令行模式运行,都会去读取这个配置文件

[pytest]

addopts = -vs #命令行参数,用空格分隔

testpaths = ./testcase #测试用例的路径

python_files = test_*.py #模块的命名规则

python_calsses = Test* #类名的命名规则

python_funtions = test #方法的命名规则

分布式执行:

pytest -s -n auto test_xdist.py

  • -n auto:可以自动检测到系统的CPU核数;
  • 使用auto利用了所有CPU来跑用例;
  • 也可以指定使用几个CPU来跑用例:

pytest执行顺序

1、unittest ascll的大小来执行[0-9][A-Z][a-z]

2、pytest默认从上到下 改不默认顺序:使用mark标记

@pytest.mark.run(order=2)

分组执行:(冒烟,分模块执行,分接口和WEB执行)

示例:

在pytest.ini文件增加

smokes =

smoke:冒烟用例

api:接口用例

代码:

@pytest.mark.smoke

def test_01():

print("123")

执行命令:

pytest -vs "smoke" 单个

pytest -vs "smoke" or “api” 多个用例用"or"连接

跳过测试用例:

@pytest.mark.skip(resason="xxxx")无条件跳过

@pytest.mark.skipif() 根据条件跳过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值