python编写自动化挂机脚本_自动化脚本编写实例-python

自动化脚本编写实例

打开浏览器访问pto

登陆

修改管理员密码

单元测试数据

检查输入的数据合法性

获取输入错误数据之后的页面提示语

编写测试用例

编写单元测试类

1 单元测试中的通用操作

2 测试类

进行单元测试并生成测试报告

关闭浏览器

异常处理

1 点击函数

2 填写表单

3 元素加载

测试报告和代码示例

1 测试报告样例

2 完整的测试代码

完整demo请参看:https://github.com/niununu/k2p_web_test

本文以修改用户名密码单元为案例,编写测试脚本。完成修改用户名密码模块单元测试。

(ps.这个demo中登陆密码为“admin”)

1. 打开浏览器,访问p.to

# 1. 打开浏览器,访问p.to

driver = webdriver.Chrome()

def openDriver():

driver.get("http://p.to")

driver.maximize_window()

2. 登陆

登陆这动作传入的参数只有一个“用户密码”

需要执行的操作有两个:1. 向输入框输入密码 2. 点击确定

需要注意的是在登陆的时候可能出现页面还没有加载出来,我们的程序就开始填写表单的情况。

为了防止异常出现,编写了函数waitandSendkeys和waitandClick来处理异常。(后面将会介绍异常处理函数)

class loginClass(object):

"""docstring for login"""

def __init__(self, arg):

self.login_pwd = arg

def login(self):

waitandSendkeys('//*[@id="Pwd"]', self.login_pwd)

waitandClick('//*[@id="Save"]')

3. 修改管理员密码

需要传入的参数有两个:1.旧密码 2. 新密码

要注意的是由于修改管理员密码是一个弹窗,所以要判断等弹窗弹出之后再进行操作

class changePwdClass(object):

"""docstring for changePwdClass"""

def __init__(self, pwdNew, pwdOld):

self.pwdNew = pwdNew

self.pwdOld = pwdOld

def changeUserPwd(self):

waitandClick('//*[@id="Con"]/div[1]/ul[2]/li[1]')

waitandClick('//*[@id="Con"]/div[1]/ul[2]/li[1]/ul/li[3]')

waitforDisplay('//*[@id="_Widget"]')

waitandSendkeys('//*[@id="PwdOld"]', self.pwdOld)

waitandSendkeys('//*[@id="PwdNew"]', self.pwdNew)

waitandSendkeys('//*[@id="PwdCfm"]', self.pwdNew)

waitandClick('//*[@id="SavePwd"]')

到这里,我们可以完成修改用户名密码这一动作。后面将进行单元测试。

4. 单元测试数据

修改用户名密码这个功能的防呆规则如下:

输入项

允许输入

可为空

格式规范

合法性

依赖项

原管理员密码

字符串

长度限制:5-63; 字符集:英文字符集;

需要与管理员密码相同

新管理员密码

字符串

长度限制:5-63; 字符集:英文字符集;

确认管理员密码

字符串

需要与新管理员密码相同

根据防呆规则可以列出:1.可能出现的错误 2.出现错误时页面应有的提示语

#可能出现的错误

errcode = ['oldPwdErr', 'lenErr', 'charErr', 'matchErr', 'pwdSameErr',\

'oldPwdBlankErr', 'newPwdBlankErr']

#出现错误时页面应有的提示语

errTips = {

'oldPwdErr' :'原密码错误',

'lenErr' : '新密码长度应为5~63位',

'charErr' : "新密码包含非法字符",

'matchErr' : '两次密码输入不一致',

'pwdSameErr' : '新密码与原密码相同,请重新输入',

'oldPwdBlankErr' : '请输入原密码',

'newPwdBlankErr' : '请输入新密码'

}

5. 检查输入的数据合法性

需要输入的数据为要检查的data和登陆密码

def checkData(data, loginPwd):#检查顺序跟页面顺序相同

pwd = loginPwd

#'oldPwdBlankErr'

if data[

你可能感兴趣的:(python编写自动化挂机脚本)