Python自动化测试基础知识总结(二)

本文介绍了使用Python结合Selenium库进行自动化测试的基本方法,包括网页元素的精准定位、不同类型的元素操作如按钮、下拉框,以及鼠标和键盘事件模拟。还提到了异常处理、等待时间和unittest测试框架的使用,提供了登录案例和多窗口处理的示例。
摘要由CSDN通过智能技术生成

1.自动化测试:

通过python + selenium编写自动化测试脚本,来代替认为的功能测试。
要求对网页的元素精准定位,然后操作元素。
自动化测试适用于:
1.项目周期较长
2.版本比较稳定,回归测试,升级版本中对之前的功能自动化测试

selenium
python selenium(api)模块|webdriver(基于浏览器的)
浏览器:
定位网页
定位元素(做元素定位要做元素审核)
1.在要测试的系统中审核元素
2.选择合适的定位方式
3.优先By_ID,表单中主要By_Name,超链接By_link_Text(完整的文本)By_partial_link_text(不完整的文本)

2.定位单个元素

1.通过id定位
find_element_by_id()
2.通过name定位
find_element_by_name()
3.通过class定位
find_element_by_class_name()
4.通过tag定位
find_element_by_tag_name()
5.通过link定位
find_element_by_link_text()
6.通过partial link定位
find_element_by_partial_link_text()
7.通过xpath定位
find_element_by_xpath()
8.通过css定位
find_element_by_css_selector()

3.button按钮

click():
isEnabled():是否可用
submit():type=submit的按钮可以使用submit()同click()用于提交表单4.

4.radio/checkbox 单选/复选框

click():定位到选框可直接点击
is_displayed():是否展示
is_selected():是否选中状态

5.select 下拉框(需要用select)

select_by_index():按索引选择选项
select_by_value():按value值选择选项
select_by_visiable_text():按选项名选择选项

6.鼠标事件

ActionChains类鼠标操作的常用方法:
context_click()右击
double_click()双击
drag_and_drop()拖动
move_to_element()鼠标悬停在一个元素上
click_and_hold()按下鼠标左键在一个元素上

7.键盘操作

send_keys(Keys.BACK_SPACE)删除键
send_keys(Keys.SPACE)空格键
send_keys(Keys.TAB)制表键
send_keys(Keys.ESCAPE)回退键
send_keys(Keys.ENTER)回车键
send_keys(Keys.CONTROL,'a')全选
send_keys(Keys.CONTROL,'c')复制
send_keys(Keys.CONTROL,'x')剪切
send_keys(Keys.CONTROL,'v')粘贴

8.嵌入页面

switch.to.frame()方法获取frame中嵌入的页面,对那个页面里的元素进行定位。
switch.to.frame()方法的参数为frame的id或者name,也就是说,使用方法是:
browser.switch_to.frame(id)
browser.switch_to.frame(name)
退出frame可以使用:
switch_to.parent_frame() #调到上级,多层框架推荐使用
switch_to.defaut_content() #跳出所有,一层框架推荐使用

9.登录案例

输入用户名,密码
1.进入登录页面
driver.get('登录.html')
2.找到用户名,密码输入框
text_uname = driver.find_element(By.ID ' ...... ')
text_password = driver.find_element(By.ID '...... ')
3.在输入框中输入信息
text_uname.send_keys('admin')
text_password.send_keys('123456')
4.点击登录
btn_login = driver.find_element
5.进入主页
tip_user = driver.find_element(By.XPATH,'.....')

10.多窗口处理

current_window_handle #获得当前窗口句柄
window_handles #获得所有窗口的句柄
句柄:是系统分配给窗口唯一标识,跟身份证一样,用句柄就可以找到这个窗口
chrome.switch_to_window(窗口句柄) #处理多窗口之间的切换

11.处理异常

try:
    代码块
except:
    处理异常
finally:
    最终的处理
#通常异常处理中会对结果截屏,可以使用:
get_screenshot_as_file('图片保存位置')
#注:只支持png格式图片

12.等待时间

强制等待
time.sleep()

隐性等待
driver.implicitly_wait()
在这段代码后面的元素定位,都会等待10秒,如果元素10秒内出现,则直接进行下面的代码,不再等待。
优点:
1.比sleep更灵活,元素出现后就不再等待了
2.作用于全局所有等位元素的位置,sleep只作用于改行代码
缺点:
如果有不存在的元素,会一直等待时间结束后,才会报错,拖慢了程序运行的速度。

13.unittest 测试框架(4+1)

Testcase 测试用例 , TestSuite测试套件 绞手架 Runner执行器

class TestClass(unittest,testcase):
    #初始化方法
    def setUp(self):
        pass
    #测试方法,方法的命名以test开头,方法不能有self之外的参数
    def test_somthing(self,param1):
        pass
    #结束方法
    def tearDown(self);
        pass
    #调用测试用例
    #实例化测试用例的工作不需要我们自己手写,而是由unittest来实现
    #需要通过调用unittest.main()方法,框架会实例化测试用例,并指定以test开头的方法,并且在执行test开头方法之前调setup,之后调teardown方法。
    if __name__ == '__main__':
        unittest.main()
        
    #TestSuite测试套件
    #将每一个测试用例(class)写成一个模块(.py),工作中每个测试人员会编写多个测试用例,再单独写一个模块,在该模块中使用测试套件,将多个测试用例一起执行。
使用测试套件的步骤:
1.实例化测试套件
suit = unittest.TestSuite()
2.将测试用例添加到测试套件中
suite.addTest(测试用例的实例)
3.运行套件
3.1通过Runner才能够运行测试套件
unittest.TextTestRunner()
3.2通过Runner实例,调用run方法
runner.run(套件用例)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值