python自动化之函数封装

Posted 让学习成为一种生活方式

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自动化之函数封装相关的知识,希望对你有一定的参考价值。

前面一些记录了selenium的各种API,包括它的安装,以及unittest框架中的testcase,testsuite等的操作,还有元素定位的知识点。

(正如虫师所讲的,学会元素定位,特别是xpath与css的定位方法,然后准备一份API文档,方便自己查阅。)

掌握了这些知识后,基本上的线性自动化测试模型可以操作了。对于一个系统也可以做冒烟测试了。

剩下的就是模块化与数据化了。(模块化与数据参数化有利于开发与维护自动化脚本,线性重复,维护成本高。)

所谓模块化就是把相同步骤的封装成一个模块。例如,登录就可以封装成一个模块了。因为它只是用户名与密码不一样,但是操作步骤是一样的。

而且如果以后登录模块发生变化了,我们只要更改登录那个模块就可以了,其它调用登录模块的地方都不需要去修改了。

在学习这一块的时候,就会涉及到开发语言的函数这一块知识了。

总之,树立一个思想,模块化就是把相同操作步骤的定义成一个函数,然后后续其它部分需要使用的话,就调用这个函数。

具体涉及的一些函数的语法,规范,参数等知识,如何调用等,自己去深入学习。

我自己对编程语言的掌握也不够扎实,正在努力中。

望诸君共勉。

写一个例子吧:

定义一个LOGIN1函数:

 from selenium import webdriver

def login1(driver,username,password):
    driver.find_element_by_css_selector("input.userInput").send_keys(username)
driver.find_element_by_css_selector("ul.submitContent.mglr30.regMain>li:nth-child(2)>input").send_keys(password)
driver.find_element_by_css_selector("a.mainColorBtn.submitBtnBig.ClickShade").click()
link=driver.find_element_by_css_selector("a._personalInfo>i").is_displayed()
print (link)
print (u"登陆成功")

调用这个LOGIN1函数:
 from selenium import webdriver
# from login3 import login1 #此处说明一下,PACKAGE的名称是LOGIN3
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.implicitly_wait(10)
# driver.get("http://**************")
#
# username="ccc44400" ####此处我们可以设置不同的用户名与密码,来分别测试登录的功能。
# password="ccc444"
#
# login1(driver,username,password) ####此处直接调用LOGIN1函数,
# driver.quit()

 
























以上是关于python自动化之函数封装的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维Python系列之面向对象

自动化运维Python系列之面向对象

Python接口自动化之requests请求封装

Python接口自动化之requests请求封装

自动化运维Python系列之基础函数和文件操作

面向对象之:封装,多态