pythom selenium Web自动化测试项目—购票系统实战
环境搭建
python环境(建议使用anaconda)
pycharm IDE集成开发工具
selenimu的安装S
安装命令:pip install selenium
校验环境是否搭建成功
写一个简单的demo打开浏览器看能否成功
- webDriver的配置,下载chromedriver并解压到python的安装路径下
- 再pycharm中编写代码,看能否成功打开chrome浏览器
# 导入selenium的包 from selenium import webdriver # 添加chrome的配置项 options = webdriver.ChromeOptions() options.add_experimental_option('detach', True) # 打开chrome driver = webdriver.Chrome(options=options)
测试流程分析(把手工需要的操作全部用python代码来实现):
流程:进入网页>>>>>输入账号(1. 找到输入框,2. 输入用户名)>>>>输入密码>>>>>点击登录>>>>验证码>>>>选票>>>>买票
具体实现
进入网页
使用.get()方法进入该网页
# 如访问12306的登录页 driver.get('https://kyfw.12306.cn/otn/resources/login.html')
输入账号
两个步骤:
- 找到输入账号的文本框
find_element()
- 输入要测试的账号
send_keys()
# 输入用户名,先找到登录框 # 定位元素,操作 driver.find_element('xpath','//*[@id="J-userName"]').send_keys('123456')
- 找到输入账号的文本框
输入密码
# 定位输入密码文本框元素,输入密码 driver.find_element('xpath','//*[@id="J-password"]').send_keys('xxxxxx')
点击登录
# 点击登录 driver.find_element("xpath",'//*[@id="J-login"]').click()
验证码
driver.find_element("xpath",'//*[@id="id_card"]').send_keys('1713') # 点击获取验证码
选票
买票
几个技术
隐式等待
# 所有找元素都会触发 # 每隔1s找一次这个元素,如果没有找到就继续,知道配置时间过了还没找到就报错,中途找到就往下执行 # 使用场景:用延迟加载的,还比如网络影响 # 优点:加强自动化的稳定性
绕过自动化
# 去掉自动化标识 option = Options() option.add_experimental_option('excludeSwitches',['enables-automation']) option.add_argument('--disable-blink-features=AutomationControlled')
固定等待
import time time.sleep(2)
Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度, Selenium保证元素成功率是通过元素的定位。不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。
S自动化测试的优点是能够很快、很广泛地查找缺陷,同时可以做很多重复性的工作,在回归测试阶段,我们可以利用自动化功能测试工具进行,而无须大量的软件测试人员手动的再次执行测试用例,极大的提高了工作效率。