导图社区 web自动化测试
web自动化测试思维导图:包含基本规则(1.必须继承unittest.TestCase类、2.可以定义SetUp和tearDown方法来初始化,也可以使用SetUpCLass和tearDownCLass来初始化,3.所有测试方法必须以test开头,会在运行时自动被调用)等等
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
web自动化测试
框架
unittest
基本规则
1.必须继承unittest.TestCase类
2.可以定义SetUp和tearDown方法来初始化,也可以使用SetUpCLass和tearDownCLass来初始化
3.所有测试方法必须以test开头,会在运行时自动被调用
4.可以用pycharm自带框架,可以用普通方试运行
用例管理
loadTestsFromTestCase
按照测试用例来进行管理,一次性运行多个测试用例
loadTestsFromModule
按照模块对用例 进行管理。names是文件名称
loadTestsFromNames
按照用例的完整名字来管理
discovery
按照路径匹配相应的用例,pattern是正则表达式
生成测试报告
HTMLTestRunner_cn
之前用unittest执行,这次用runner执行
用上面函数在报告中添加截图
智能等待
可以直接重写函数,设置显示等待
数据驱动
需要多条数据执行同一段代码
1.参数值为单个函数形式
2.参数值为组合参数形式,需要解包,并且在函数中增加三个参数
3.从函数获取返回值,需要用*进行提前解包
4.从文件获取返回值
补充:python中的*
1.作为乘法或者乘幂运算符
2.在定义函数的时候,接受多个参数
3.在函数调用的时候,*后面的参数必须要显示指定
4.可迭代对象的组合
例如:item=[*list,*tuple,*mystr],可以打印出一个列表,就是对每个参数进行解压
5.压缩可迭代对象的一部分
例如:list=[1,2,3,4],打印a,b,*c=list,c打印出来就是[3,4]
常用API-浏览器操作
打开-get(url)
关闭-quit()_结束进程
close()关闭当前窗口
设置窗口大小
set_window_size(200,500)
最大化窗口
maximize_windows()
获取网页源码
page_source
获取窗口名称
name
刷新页面
refresh()
获取页面标题
title
获取当前页面url地址
current_url
获取当前界面截图
get_screenshot_as_file(path)
常用API定位方式
id
class name
特指具有class属性
tag name
link text<a>
partial link text<a>
xpath
常用格式:driver.find_element('xpath',"//div[@class='login-top']/input[2]").send_keys("aaa")
css selector
tr,td之类的
元素定位的常规规则
定位方式选择
有id用id,其次name
Xpath最后的办法
定位一组相同的元素最好用tagname和name
定位链接
partialLinkText模糊搜索
注意事项
找到待定位元素的唯一属性
如果没有唯一属性,找到其唯一定位的父元素,再使用xpath或者css这样的基于位置的定位
不要使用随机唯一属性定位
减少重复ID
常用API-元素
clear
清除文本框内的文字
send_keys
向文本域或文件上传按钮发送文字内容
click
点击按钮
text
获取节点文本信息
get_attribute(name)
获取元素属性信息
is_displayed
获取元素是否显示
is_enabled()
is_selected()
复选框常见操作
Select(driver.find_element_by_id('status')).select_by_value('xxx')
select_by_visible_text('出错啦:用户名错误')
select_by_value
下拉列表常见操作
send_keys(Keys.SHIFT,"xiaoxie")
发送复合按键
常见EC方法
title_is(str)
判断当前页面的title是否符合预期
title_contains(str)
判断当前页面是否包含某字符串
presence_of_element_located
判断某个元素是否被加到dom树,并不代表该元素一定可见
visibility_of_element_located
判断某个元素是否可见,可见代表非隐藏,并且元素宽高都大于0
invisibility_of_element_located
判断某个元素是否不可见
element_to_be_clickable
判断某个元素是否可见并可点击
text_to_be_present_in_element
判断某个元素中的text是否包含预期字符串
常用形式:WebDriverWait(driver,5).until(EC.xxx方法(id,btn2)))
frame操作
一个页面嵌套另一个
driver.switch_toframe(查找元素)
切换窗口
switch_to.default_content()
切回当前窗口
文件上传
只有用浏览器自带的文件类型才可
多窗口切换
switch_to.window(driver.window_handles[1])
记得保存当前句柄
current=driver.current_window_handle
悬浮菜单操作
对于悬浮菜单的操作
item=driver.find_element('id','s-usersetting-top')
ActionChains(driver).move_to_element(item).perform()
相当于鼠标移动
对于ajax类型(百度搜索提示)
找到那个class的名字,打印