• 自动化测试模型介绍


    1.线性测试

    每个脚本都是独立的,用例维护成本较高,代码重复

    2、模块化与类库(例:将“登录”,“退出”封装成单独模块)

    提高开发效率,代码重复使用

    3.数据驱动

    #coding=utf-8
    from selenium import webdriver
    import time
    values=['selenium','webdriver',u'虫师']
    # 执行循环
    for serch in values:
    driver = webdriver.Firefox()
    driver.get("http://www.xxxx.com")
    driver.find_element_by_id("kw").send_keys(serch)
    time.sleep(3)

    不管我们读取的是数组,还是字典、函数,又或者是 csv、txt 文件。我们实现了数据与脚本的分离,
    换句话说,我们实现了参数化。我们传一千条数据,通过脚本的执行,可以返回一千条结果出来。

    -------------------------------------------------------------------------------------------------------------------------------------------

    登录参数化(函数)
    函数是我们前面刚介绍的 python 知识,函数可以预先给参数化赋值,借助这个特性,我们可以通过

    调用函数的方式对用户名密码进行参数化

    userinfo.py

    def fun(un='testing',pw=123456):
    print "success reader username and password!!"
    return un,pw

    我们为两个参数 un 和 pw 赋了初值,赋值内容如果是字符串需要加引号,如果是数字可以不需要
    引号。再次打开 login.py 文件,做如下修改:

    #coding=utf-8
    from selenium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    import unittest, time
    import userinfo #导入函数
    #通过两个变量,来接收调用函数获得用户名&密码
    us,pw = userinfo.fun()
    #打印两个变量
    print us,pw
    def login(self):
    driver = self.driver
    driver.maximize_window()
    driver.find_element_by_id("user_name").clear()
    driver.find_element_by_id("user_name").send_keys(un)
    driver.find_element_by_id("user_pwd").clear()
    driver.find_element_by_id("user_pwd").send_keys(pw)
    driver.find_element_by_id("dl_an_submit").click()
    time.sleep(3)

    在编写用例之间,笔者再次强调几点编写自动化测试用例的原则:
    1、一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器。
    2、一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统

    3、尽量只做功能中正向逻辑的验证,不要考虑太多逆向逻辑的验证,逆向逻辑的情况很多(例如手
    号输错有很多种情况),验证一方面比较复杂,需要编写大量的脚本,另一方面自动化脚本本身比较脆弱,
    很多非正常的逻辑的验证能力不强。(我们尽量遵循用户正常使用原则编写脚本即可)
    4、脚本之间不要产生关联性,也就是说编写的每一个脚本都是独立的,不能依赖或影响其他脚本。
    5、如果对数据进行了修改,需要对数据进行还原。
    6、在整个脚本中只对验证点进行验证,不要对整个脚本每一步都做验证。

  • 相关阅读:
    Django终端打印SQL语句
    Django之缓存
    Django总结三
    Django之信号
    Django之Form的ModelForm
    git下
    Ajax实现文件的上传
    operator模块
    Django之Form自定义验证规则
    New Concept English Two 32 88
  • 原文地址:https://www.cnblogs.com/wzc27229/p/11374249.html
Copyright © 2020-2023  润新知