一、模块驱动测试实例

 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起
from selenium import webdriver class login():
#登录
def user_login(self,driver):
user = dr.find_element_by_id('idInput').clear()
user.send_keys('username')
pwd = dr.find_element_by_id('pwdInput').clear()
pwd.send_keys('password')
dr.find_element_by_id('loginBtn').click() #退出
def user_logout(self,driver):
dr.find_element_by_link_text('退出').click()
dr.quit() #执行测试用例
dr=webdriver.Chrome()
dr.implicitly_wait()
dr.get('http://www.126.com') #调用登录模块
login().user_login(dr) #调用退出模块
login().user_logout(dr)

二、数据驱动测试实例

#、参数化邮件登录,把user_login()方法增加user,pwd两个入参参数
#把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起
from selenium import webdriver
class login():
#登录
def user_login(self,driver,user,pwd):
user = dr.find_element_by_id('idInput').clear()
user.send_keys('username')
pwd = dr.find_element_by_id('pwdInput').clear()
pwd.send_keys('password')
dr.find_element_by_id('loginBtn').click() #退出
def user_logout(self,driver):
dr.find_element_by_link_text('退出').click()
dr.quit() #执行测试用例
class loginTest():
def __init__(self):
self.dr=webdriver.Chrome()
self.dr.implicitly_wait()
self.dr.get("http://www.126.com") #admin用户登录
def test_admin_login(self):
user = 'admin'
pwd = ''
login().user_login(self.dr,user,pwd)
login().user_logout(self.dr)
self.dr.quit() #guest用户登录
def test_guest_login(self):
user = 'guest'
pwd = ''
login().user_login(self.dr,user,pwd)
login().user_logout(self.dr)
self.dr.quit() if __name__ == '__main__':
loginTest().test_admin_login()
loginTest().test_guest_login()
'''参数化搜索关键字'''
from selenium import webdriver
list = ['python','zhongwen','text']
for text in list:
dr = webdriver.Chrome()
dr.implicitly_wait(20)
dr.get('http://www.baidu.com')
dr.find_element_by_id('kw').send_keys(text)
dr.find_element_by_id('su').click()
dr.quit()

web自动化测试-模块驱动测试实例和数据驱动测试实例的更多相关文章

  1. Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例

    1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...

  2. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动

    转载:http://www.cnblogs.com/chengtch/p/6576117.html 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚 ...

  3. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

     接口测试与数据驱动 1简介 数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程. 2 数据驱动与jmeter接口测试 我们已经简单介绍 ...

  4. RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)

    在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的 ...

  5. 好代码是管出来的——.Net Core集成测试与数据驱动测试

    软件的单元测试关注是的软件最小可执行单元是否能够正常执行,但是软件是由一个个最小执行单元组成的集合体,单元与单元之间存在着种种依赖或联系,所以在软件开发时仅仅确保最小单元的正确往往是不够的,为了保证软 ...

  6. Python Selenium 之数据驱动测试的实现

    数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测 ...

  7. 自动化测试架构设计 &&自动化持续集成测试任务实战[线性测试、模块驱动测试、数据驱动测试、关键字驱动测试]

    1 为什么设计自动化测试架构 1.1 企业现状分析 压力大:产品需求不明确,上线时间确定,压力山大. 混乱:未立项,开发时间已过半,前期无控制,后期无保障. 疲于应付:开发人员交付的文件质量差,测试跟 ...

  8. selenium3 web自动化测试框架 五: 数据驱动简介及基础使用

    1.数据驱动概述 相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式称为数据驱动.简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使 ...

  9. Selenium数据驱动测试模型和实例

    模块驱动的模型虽然解决了脚本的重复问题,但是需要测试不同数据的用例时,模块驱动的方式就不很适合了. 数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变. 装载数据的方式可以是列表. ...

随机推荐

  1. LeetCode 921. 使括号有效的最少添加(Minimum Add to Make Parentheses Valid) 48

    921. 使括号有效的最少添加 921. Minimum Add to Make Parentheses Valid 题目描述 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的 ...

  2. 将python工程部署到新服务器(对virtualenv工具进行环境迁移)

    将python工程部署到新服务器(对virtualenv工具进行环境迁移) # 从开发的电脑上导出 pip list 到 requirements.txt 文件pip freeze > requ ...

  3. mysql求中位数

    实例1: SET @ID = 0; SELECT AVG(loan_amount) from ( SELECT @ID:=@ID+1 as ID, loan_amount FROM   table_x ...

  4. SSM整合学习 二

    二:与Spring MVC整合 一:添加Spring MVC Framework 右键项目名称,点击Add Framework Support 选择Spring-Spring MVC框架 选择Down ...

  5. [Atcoder AGC037E]Reversing and Concatenating

    题目大意:有一个长度为$n$的字符串$S$,有$k$次操作,每次操作为把$S$变为$SS^R$(即翻转后再接在一起),然后从中选取一段长度为$n$的字串.问$k$次操作后,字典序最小的一种是什么.$n ...

  6. vuex的Store简单使用过程

    介绍 Store的代码结构一般由State.Getters.Mutation.Actions这四种组成,也可以理解Store是一个容器,Store里面的状态与单纯的全局变量是不一样的,无法直接改变st ...

  7. Linux 7 重置root密码

    在运维工作中经常会遇到不知道密码,密码遗忘,密码被他人修改过的情况,使用这种方式扫清你一切烦恼! 1.启动Linux系统,在出现引导界面时,按“e”键,进入内核编辑界面:2.找到有“linux16”的 ...

  8. Spring Data Solr入门小Demo

    package com.offcn.pojo; import java.io.Serializable; import java.math.BigDecimal; import java.util.D ...

  9. Elasticsearch 主要监控指标 -- 描述了es监控的几个维度,相当不错!

    转发自:https://blog.csdn.net/majianxiong_lzu/article/details/90437559 主要指标梳理 Cluster Health – Nodes and ...

  10. Laravel 5.5 发布,ThinkSNS+ 升级及状况分享

    升级场景 ThinkSNS+ 一直依赖,都是保留 Laravel 的 commit 记录的前提下,进行开发,为了追随 Laravel 的升级,我们在本地的仓库中新建了一个分支,如果 laravel 更 ...