一起学python自动化(第二天)

本文介绍了自动化测试中的数据驱动测试概念,并通过Python的Selenium库展示了如何实现登录和退出功能的封装。作者通过创建Mail类实现了登录和登出方法,并演示了如何使用不同数据参数化登录功能,包括错误的用户名和密码情况。文章最后提到后续将探讨读取数据文件及单一测试框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列文默认各位有一定的测试理论基础、python基础
本系列文默认各位会百度,学习自动化系列的课程,默认各位已经配置好了相关环境,默认安装了编译器。

啊啊啊啊啊,迟来的第二天,最近太忙了,然后写博文这件事情,就给耽搁了一下,实在是不该。下次应该再晚也要输出文章,flag 先立起来再说,争取做到,吾日三省吾身。
前面第一篇我们学习了selenium的基本操作,也带着大家写了一个脚本,今天我们主要是来看一下如何用数据驱动测试。
那么这里问题来了

自动化测试的模型都有哪些你们知道吗?

1、线性测试
单纯的模拟自动化,上一篇讲的就是这个

2、模块与类库
将重复的操作封装成公共模块,用的时候进行调用

3、关键字驱动
RF就是关键词来驱动的主流框架

4、数据驱动测试
我们要讲的,其实就是参数化,然后我们可以用多种方式来管理这些参数化的数据。

那么如何参数化呢,首先我们以登陆邮箱为例,写一个测试脚本,test_mail.py

from time import sleep
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://www.126.com/")
driver.maximize_window()
sleep(2)

driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))
driver.find_element_by_name("email").clear()
driver.find_element_by_name("email").send_keys("username")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("password")
driver.find_element_by_id("dologin").click()
sleep(5)
driver.find_elements_by_link_text('退出').click()
driver.quit()

注意:这里是需要验证码的,这个验证码的解决,在实际的测试中,我们一般是设置一个万能的验证码或者是让开发屏蔽掉。

还有这里有一个点,就是iframe标签,这里我一开始尝试的是swich-to到iframe页面,但是他的id也是动态的,还是没办法进入到iframe下,然后经过度娘的洗礼下,找到了如上的方法,就是先通过xpath进入到iframe页面,然后再去通过id定位。

好了,接下来我们是不是要考虑邮箱有哪些功能,比如是不是可以发送邮件,查看,删除
而如果说我们有大量的操作,或者是不同的用户都要来进行这些功能,是不是会有大量的登录以及退出的工作。
那么这些工作,我们再来写一个文件,把这些操作封装成一个类test_module.py
初始化一下driver,然后调用一下selef.driver实现登录退出

class Mail:
    def __init__(self,driver):
        self.driver=driver

    def login(self):

        self.driver.switch_to.frame(self.driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))
        self.driver.find_element_by_name("email").clear()
        self.driver.find_element_by_name("email").send_keys("username")
        self.driver.find_element_by_name("password").clear()
        self.driver.find_element_by_name("password").send_keys("password")
        self.driver.find_element_by_id("dologin").click()

    def logout(self):
        self.driver.find_elements_by_link_text('退出').click()

到了这里,我们需要来调用我们上面写的login logout方法,修改一下我们前面的test_mail.py文件

from test_module import Mail
driver=webdriver.Chrome()
driver.get("http://www.126.com/")
mail=Mail(driver)
mail.login()
sleep(5)
mail.logout()
driver.quit()

这样以后我们在写用例的时候,只要用到了登录退出,就只需要调用一下Mail类中的方法就行了。
如果是登录功能,不同的用户名密码也是一样的。这个留给你们自己写一下。这里上传一下我写的。

修改一下test_moudle.py文件

 def login(self,username,password):
        self.driver.find_element_by_name("email").clear()
        self.driver.find_element_by_name("email").send_keys("username")
        self.driver.find_element_by_name("password").clear()
        self.driver.find_element_by_name("password").send_keys("password")
        self.driver.find_element_by_id("dologin").click()

接下来的测试用例,我们可以用不同的数据来调用login()方法

#登录账号密码为空
mail.login("","")
#用户名为空
mail.login('',"passsword")
#用户名密码错误
mail.login("error","error")
#管理员登录
maile.login("admin","admin123")

emmmmmmmmm,今天的数据驱动测试就写道这里了,等下次有时间,学习一下python中的读取数据文件,然后讲一下单院测试框架,哦了,拜了个拜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值