做了一段时间的接口测试后,突然心血来潮想做自动化功能测试,那么趁着有兴趣,说做就做。
环境:
python、python-IDE(pyCharm)、第三库 selenium
第一次尝试写登录测试脚本,如下:
# coding:utf-8
from selenium import webdriver
import time
import Public_Variable
class Login():
def __init__(self, url, account, password):
self.browser = webdriver.Chrome()
self.browser.implicitly_wait(30)
self.browser.maximize_window()
self.browser.get(url)
self.account = account
self.password = password
self.cnn = []
self.cnn.append(self.browser)
time.sleep(1)
self.login_title = Public_Variable.VariAble.login_title
# 个人/企业登录
def user_login(self):
# 登录页面的操作
self.browser.find_element_by_id('LoginForm_phone').clear()
self.browser.find_element_by_id('LoginForm_phone').send_keys(self.account)
self.browser.find_element_by_id('LoginForm_password').clear()
self.browser.find_element_by_id('LoginForm_password').send_keys(self.password)
self.browser.find_element_by_name('yt0').click()
time.sleep(2)
# 获取页面title的内容并转为utf-8格式的字符串
title_value = self.browser.title.encode("utf-8")
<span style="white-space:pre"> </span># 判断页面title是否是登录页面的title
if title_value != self.login_title:
# 获取 个人中心的个人中心文字信息
identity = self.browser.find_element_by_xpath("//nav[@class = '_right_fr']/span[6]/a").text
# 获取 登录手机信息
acct = self.browser.find_element_by_class_name('_c11').text
# 获取 欢迎语句
mg = self.browser.find_element_by_class_name('_mr25px').text
print identity, acct, mg
time.sleep(2)
# 获取 页面 cookies
cookie = self.browser.get_cookies()
# 筛选cookies中的name和value的值
cookies = {'name': cookie[0]['name'], 'value': cookie[0]['value']}
cnn = []
# 把当前窗口语柄添加到 cnn列表中
cnn.append(self.browser)
# 把获取到的cookie 添加到 cnn 列表中
cnn.append(cookies)
# cnn = [{'cookies' :{'name': cookie[0]['name'], 'value': cookie[0]['value']}},browser]
return cnn
else:
self.browser.find_element_by_xpath('//div[@class = "layui-layer-content"]')
conn = self.browser.find_element_by_xpath('//div[@class = "layui-layer-content"]').text.encode("utf-8")
self.browser.find_element_by_link_text("确定").click()
print str(self.account) + ' 账号登录失败: ' + conn
time.sleep(1)
return self.browser
程序可以运行,但编写过程中出现了各种错误;成功运行后,开始尝试把用例写到excel中让程序读取数据然后执行,但不知是原因第一次数据执行后,后面的数据执行很慢,也许是我的思路出问题了。
在网上搜索了一下了自动化测试,发现一个不错的博文,连接:点击打开链接
手工测试和自动化测试的功能和定位:
手工测试:主要用用来发现功能缺陷、能细腻的定位问题,具有一定的跳跃性和异常处理能力
自动化测试:任何一个判断都需要编码定义,主要是保证产品主体功能完整和执行繁琐重复的工作;主要作用在冒烟测试和回归测试。
误区:自动化测试脚本不能直接引入测试用例、不能直接拿手工测试用例来做自动化测试用例
自动化用例选项:
1.不是所有的手工测试用例都需要转为自动化测试用例
2.如果自动化用例中存在复杂的流程,则可拆分为多个用例来实现
3.用例的选择最好构成场景
4.用例最好带上目的性
5.选取的用例最好是 重复、繁琐的部分
编写脚本时需要了解脚本时怎么替代人工来执行的
明白每个步骤要做什么,验证什么