精华内容
下载资源
问答
  • 本文实例讲述了python自动化测试的过程,分享给大家供大家参考。具体代码如下:import unittest########################################################################class RomanNumeralConverter(object):&...

    本文实例讲述了python自动化测试的过程,分享给大家供大家参考。

    具体代码如下:

    import unittest

    ########################################################################

    class RomanNumeralConverter(object):

    """converter the Roman Number"""

    #----------------------------------------------------------------------

    def __init__(self, roman_numeral):

    """Constructor"""

    self.roman_numeral = roman_numeral

    self.digit_map = {"M":1000, "D":500, "C":100, "L":50, "X":10,

    "V":5, "I":1}

    def convert_to_decimal(self):

    val = 0

    for char in self.roman_numeral:

    val += self.digit_map[char]

    return val

    ########################################################################

    class RomanNumeralConverterTest(unittest.TestCase):

    """test class"""

    def test_parsing_millenia(self):

    value = RomanNumeralConverter("M")

    self.assertEquals(1000, value.convert_to_decimal())

    if __name__ == "__main__":

    unittest.main()

    程序运行效果如下:

    .

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

    Ran 1 test in 0.000s

    OK

    此处注意三点:

    1. import unittest

    2. 测试类要继承unittest.Testcase

    3. main中调用 unittest.main()

    这里需要注意的是:测试类的是测试函数也以test开头。

    希望本文所述对大家的Python程序设计有所帮助。

    展开全文
  • ##基于python3和selenium的智慧树自动刷课脚本因为还要安装python3和自动化测试工具,所以不适合只想刷课的同学,想学python自动化的同学,可以借鉴一下,互相学习。脚本还存在某些问题,可自行测试。##'''基于python3...

    ##

    基于python3和selenium的智慧树自动刷课脚本

    因为还要安装python3和自动化测试工具,所以不适合只想刷课的同学,想学python自动化的同学,可以借鉴一下,互相学习。

    脚本还存在某些问题,可自行测试。

    ##

    '''

    基于python3和selenium的智慧树刷课脚本

    作者:Succ

    '''

    import time as ti

    from selenium import webdriver

    from selenium.webdriver import ActionChains

    from selenium.webdriver.common.by import By

    from selenium.webdriver.support.ui import WebDriverWait

    from selenium.webdriver.support import expected_conditions as EC

    print('*************************************')

    # ?输入用户名和密码

    name = input('请输入手机号:')

    passwd = input('请输入密码:')

    count = int(input('请输入要看的课序号:'))

    url = r'https://passport.zhihuishu.com/login?service=http://online.zhihuishu.com/onlineSchool/'

    browser = webdriver.Chrome()

    browser.maximize_window()

    browser.get(url)

    try:

    lname = browser.find_element_by_id('lUsername').send_keys(name)

    lpasswd = browser.find_element_by_id('lPassword').send_keys(passwd)

    login = browser.find_element_by_class_name('wall-sub-btn').click()

    print('登录成功...')

    except:

    print('登陆失败...请重启脚本!!!')

    print('*************************************')

    print('--------------------------------------')

    #找到要看的课程接口按钮

    ti.sleep(3)

    print('正在进入课程页面...')

    if count > 1:

    try:

    action = ActionChains(browser)

    name = browser.find_element_by_id('course_recruit_studying_next')

    action.move_to_element(name).perform()

    nextpage = WebDriverWait(browser,15).until(EC.presence_of_element_located((By.ID,'course_recruit_studying_next')))

    nextpage.click()

    ti.sleep(1)

    print('下一页进入成功...')

    except:

    print('进入失败...')

    browser.quit()

    ti.sleep(3)

    try:

    course = browser.find_elements_by_class_name('speedPromote_btn')

    course[count].click()

    print('进入成功...')

    except:

    print('进入失败...')

    handler = browser.current_window_handle

    handles = browser.window_handles

    for i in handles:

    if i!= handler:

    browser.switch_to.window(i)

    #设置静音和1.5倍速 ?可能一次不行 ?循环直到可以 ?为止

    def speed_15_and_mute():

    try:

    move = ActionChains(browser)

    name = browser.find_element_by_class_name('videoArea')

    move.move_to_element(name).perform()

    move_speedbox = ActionChains(browser)

    q = browser.find_element_by_class_name('speedBox')

    move_speedbox.move_to_element(q).perform()

    q.click()

    speed = browser.find_element_by_class_name('speedTab15')

    speed.click()

    global flag

    print('1.5倍速设置成功')

    volumn = browser.find_element_by_class_name('volumeIcon')

    volumn.click()

    print('静音设置成功')

    flag = 1

    except:

    flag = 0

    flag = 0 ?#静音和倍速成功标志位 ?1 成功 0 不成功

    #关闭各个弹窗

    try:

    print('尝试关闭弹窗...')

    close_wi = WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CLASS_NAME, "popbtn_yes")))

    close_wi.click()

    print('关闭成功!')

    except:

    print('关闭失败!')

    ti.sleep(1.5)

    try:

    print('尝试期末提示...')

    jimo = browser.find_element_by_class_name('popup_delete')

    jimo.click()

    print('关闭成功!')

    except:

    print('关闭失败!')

    #__分别拿到当前课程号和总课程号

    ti.sleep(1)

    currentclass = browser.find_element_by_class_name('videotop_lesson_tit').text

    currentclass = currentclass.split('、')[0]

    currentclass = currentclass.split('.')

    re1 = 0

    for i in range(len(currentclass)):

    re1 += int(currentclass[i]) * pow(10 , len(currentclass) - i)

    totalclass = browser.find_elements_by_class_name('hour')

    totalclass = totalclass[-1].text

    totalclass = totalclass.split('.')

    re2 = 0

    for i in range(len(totalclass)):

    re2 += int(totalclass[i]) * pow(10 , len(totalclass) - i)

    #__拿到当前课程的进度

    # jindu = browser.find_element_by_css_selector('#video-892507 > div.progressbar_box_tip > span').text

    # jindu = jindu.split('『')

    # jindu = jindu[1].split('%')

    # jindu = jindu[1][:-1]

    # jindu = int(jindu)

    # print(jindu)

    while re1 <= re2: ?#当前课程号和总课程号相等时退出

    title = browser.find_element_by_class_name('videotop_lesson_tit').text

    print("正在播放" + title)

    flag = 0

    while(flag == 0):

    speed_15_and_mute()

    ti.sleep(4)

    #等待答题窗口 ?要进入内联中

    print('等待答题:')

    symbol = 0 #__是否刷出弹窗标志位

    currenttime=browser.find_element_by_class_name('currentTime').get_attribute('textContent")

    totaltime = browser.find_element_by_class_name('duration').get_attribute('textContent')

    currenttime = int(currenttime[3:5])*60 + int(currenttime[-2:])

    totaltime = int(totaltime[3:5])*60 + int(totaltime[-2:])

    waittime = totaltime - currenttime

    print(waittime)

    try: ? #__可能存在刷不出弹框的现象,进行异常处理

    ceshi = WebDriverWait(browser,waittime).until(EC.presence_of_element_located((By.ID,'popbox_title')))

    print('答题窗口出现...')

    symbol = 1

    except:

    print('弹窗未刷出')

    if symbol == 1:

    browser.switch_to.frame('tmDialog_iframe')

    sw = browser.find_element_by_css_selector('body > div > div > div > div.queslist_cur > div > div > div > div > div:nth-child(4) > label > input[type=radio]')

    sw.click()

    browser.switch_to.parent_frame()

    cl = browser.find_element_by_class_name('popbtn_cancel')

    cl.click()

    print('答题完成...')

    #等待播放完毕

    while(waittime):

    currenttime = browser.find_element_by_class_name('currentTime').get_attribute('textContent')

    totaltime = browser.find_element_by_class_name('duration').get_attribute('textContent')

    currenttime = int(currenttime[3:5])*60 + int(currenttime[-2:])

    totaltime = int(totaltime[3:5])*60 + int(totaltime[-2:])

    waittime = totaltime - currenttime

    # while(jindu != 100):

    # ? ? jindu = browser.find_element_by_css_selector('#video-892507 > div.progressbar_box_tip > span').text

    # ? ? jindu = jindu.split('『')

    # ? ? jindu = jindu[1].split('%')

    # ? ? jindu = jindu[1][:-1]

    # ? ? jindu = int(jindu)

    ti.sleep(2)

    print('本次播放完成...')

    #完毕后按下一集

    move = ActionChains(browser)

    name = browser.find_element_by_class_name('videoArea')

    move.move_to_element(name).perform()

    nextBtn = browser.find_element_by_id('nextBtn').click()

    #再次拿到当前课程号和总课程号 进行判断

    ti.sleep(1)

    currentclass = browser.find_element_by_class_name('videotop_lesson_tit').text

    currentclass = currentclass.split('、')[0]

    currentclass = currentclass.split('.')

    re1 = 0

    for i in range(len(currentclass)):

    re1 += int(currentclass[i]) * pow(10 , len(currentclass) - i)

    totalclass = browser.find_elements_by_class_name('hour')

    totalclass = totalclass[-1].text

    totalclass = totalclass.split('.')

    re2 = 0

    for i in range(len(totalclass)):

    re2 += int(totalclass[i]) * pow(10 , len(totalclass) - i)

    print('--------------------------------------')

    print('刷课完成')

    print('..................................')

    browser.quit()

    展开全文
  • 本已收会围绕整个开发过程,从配置和规划到自动化测试和创建不同的命令行工具。本书涵盖了基础脚本到标准库Python包使用都所有常用知识。通过本书的学习,你将了解如何基于理想的资源规划、实施和发...

    Python 在不断进化并且它的功能已经延伸到IT运维的方方面面。本书将助力你运用 Python 的最新功能编写有效的脚本和创建命令行工具(使用数据类型、循环、条件语句、函数、错误处理等等)来管理你的开发环境。本已收会围绕整个开发过程,从配置和规划到自动化测试和创建不同的命令行工具。本书涵盖了基础脚本到标准库Python包使用都所有常用知识。通过本书的学习,你将了解如何基于理想的资源规划、实施和发布项目,最终创建一个大型的脚本项目。

    本书适用人群

    本书适于了解 Python 编程基础知识并有志于扩展编程技巧来编写命令行脚本和系统运维管理的人学习。

    要求有一定有 Python 编程知识。

    本书涵盖内容

    有效使用本书

    我们编写这本书通过不同脚本来讲解Python编程的不同方法。但是要有效的了解这些内容,你应该:

    有一个安装并配置的好用于测试 /调试脚本的 Linux 系统

    理解所创建的脚本

    知晓每个脚本的组件

    查看这些组件如何以新的方式复用或合并

    在开启本书之旅以前我们假定读者有一定程度的 Python 知识,本书中将不会涉及这些基本技能。它们包括:

    如何安装和配置Linux系统

    如何安装、方案和配置特定的Python IDE(虽然很多已经在大多数Linux发行版本中包含了)

    计算机和编程的基础知识(虽然我们尽力提供一个快速的讲解)

    下载示例代码

    本书原作者的代码包可通过 Packt的 GitHub 仓库进行获取。如果代码有任何更新,都会在 GitHub 的仓库中进行更新。

    adbc6753aa32

    展开全文
  • 每个结构约40个字节,表的大小限于64K,形成每个模块大约有1500个声明每个worker进程都有一个独立的连接池,连接池的大小是worker_connections在输入检查比如,要在一个PentiumII机器上查看执行时间上的区别,可以...

    每个结构约40个字节,表的大小限于64K,形成每个模块大约有1500个声明

    每个worker进程都有一个独立的连接池,连接池的大小是worker_connections138.jpg在输入检查比如,要在一个PentiumII机器上查看执行时间上的区别,可以调用每个例程1,000,000次

    Fri Mar 23 10:34:26 CST 2018

    There was an unexpected error (type=Internal Server Error, status=500).

    Circular view path [index]: would dispatch back to the current handler URL [/home/index] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

    Web动画图像分解方法

    从Web网页上下载静态图像文件比较简单,下载后需要进行分解

    10 // 会有Duplicate method dealArray(int[]) in type TestVarArgus的错误由于提供了每个主题的内容提要,在书的开头、每篇或每章开头的摘要部分的描述链接,节省了用户的大量时间

    22 //Class.forName("com.mysql.jdbc.Driver");刺激3.)当Recordset对象的使用结束时,关闭该对象以释放所有记录集级的锁定

    JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

    展开全文
  • 1 转换测试数据1.1将用例数据...用例描述:描述这用例的设计的意义提交数据:记录由测试数据转换成的json字符串,结果返回:记录的接口提交测试数据后所返回的结果预期结果:用例的预期,是通过还是不通过实例...
  • 闲来无事,随便了解下python自动化测试相关知识,看到这个样例不错简单实用,就拷贝下来保存~通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式...
  • 程序说明:本程序实现将开发程序服务器中的打包文件通过该脚本上传到正式生产环境(注:生产环境和开发环境不互通)程序基本思路:将开发环境中的程序包拷贝到本地堡垒机将程序包进行解压获得解压后的文件通同步到...
  • %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='测试脚本日志.log', filemode='w') def log_uncaught_exceptions(exception_type, exception, tb): logging.critical(''.join(traceback....
  • 脚本比较通用,在自动化监控和运维过程中比较实用,下面将对脚本做简单的分析。 代码解析: 该脚本共有两个文件,linux_batch_command.py和linux_servers.list。linux_batch_command.py用于执行自动登录和运行脚本...
  • +((!+[]+(!![])+!![]+!![]+!![]+!![]+!![]+!![]+[])+(+!![])+(!+[]+(!![])+!![]+!![]+!![]+!![]+!![])+(!+[]+(!![])+!![]+!![]+!![])+(!+[]-(!![]))+(!+[]+(!![])+!![]+!![])+(!+[]+(!![])-[])+(!......
  • Orange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视编程前端,以便浏览数据分析和可视,基绑定了 Python以进行脚本开发。它包含了完整的一系列的组件以进行...
  • Python Cookbook

    2013-07-31 22:33:26
    16.11 自动化py2exe将脚本编译成Windows可执行文件的过程 585 16.12 在UNIX中将主脚本和模块绑成一个可执行文件 587 第17章 扩展和嵌入 590 引言 590 17.1 实现一个简单的扩展类型 592 17.2 用Pyrex实现一个...
  • 第5章: VBA自动化处理与网页抓取 任务37: 引言 任务38: 需求 任务39: 学会使用宏 任务40: 使用VBA实现一步生成工资 任务41: VBA概念以及编辑器介绍 任务42: 案例介绍 任务43: 编写带有界面的Helloworld程序...
  • MachineLearning100/100-Days-Of-ML-Code: 100-Days-Of-ML-Code中文版 机器学习、图像声音处理文章列表 - TinyMind 机器学习-Label Encoding与One Hot的区别-20180513 机器学习与深度学习 - 连载 - 简书 【干货】史...
  • 增加不过滤 script,style ,不自动转div为p的脚本 修复在django 1.6和python2.7下的警告 使用 json 代替 django 中的 simplejson 用content_type 代替原来的 mime_type ###[2014-5-7] 更新到Ueditor 1.3.6 BUGfix:...
  • Android应用开发揭秘--详细书签版

    热门讨论 2012-12-12 13:27:46
    开发、android游戏引擎设计、android应用优化、opengl等高级知识,最重要的是还全面介绍了如何利用原生的c/c++(ndk)和python、lua等脚本语言(android scripting environment) 来开发android应用;本书实战性强...
  • 最上层的业务,每个组件表示一完整的业务线,彼此之间互相独立。 该案例中分为:干活集中营,玩Android,知乎日报,微信新闻,头条新闻,搞笑视频,百度音乐,我的记事本,豆瓣音乐读书电影,游戏组件等等。 ...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

python自动化脚本实例100条

python 订阅