多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

接口自动化测试模型(Python+Selenium)简介

更新时间:2021-10-11 01:41:16 作者:admin 浏览:368

接口自动化测试模型(Python+Selenium)简介

  刚接触自动化测试,由于没有编程语言的基础,是搞不懂代码里面的函数、封装、包以及其他概念,只是了解字符串、数组、元组及字典这种最基本的名词,更不懂自动化测试框架了。

  1、线性测试

  线性测试,顾名思义,就是一条路按照一条直线走到底。它的每个脚本都是独立的,都可以拿出来单独运行,来验证一个功能点,上两段小代码举个例子:

  打开百度主页:

  # coding:utf-8

  from time import sleep # 从time中引入sleep

  from selenium import webdriver # 从selenium中引入webdriver

  driver = webdriver.Firefox() # 选择打开的浏览器

  driver.maximize_window() # 浏览器窗口最大化

  driver.implicitly_wait(3) # 隐式等待

  driver.get("https://www.baidu.com") # 获取URL,打开页面

  driver.quit() # 退出相关浏览器

  打开百度主页,并输入查找内容:

  # coding:utf-8

  from time import sleep # 从time中引入sleep

  from selenium import webdriver # 从selenium中引入webdriver

  driver = webdriver.Firefox() # 选择打开的浏览器

  driver.maximize_window() # 浏览器窗口最大化

  driver.implicitly_wait(3) # 隐式等待

  driver.get("https://www.baidu.com") # 获取URL,打开页面

  search = driver.find_element_by_id("kw") # 通过id定位搜索框

  search.send_keys("selenium") # 填入"selenium"

  sleep(5) # 直接等待

  driver.quit() # 退出相关浏览器

  以上两段代码,分别做了实现打开百度首页和打开百度首页后输入查找内容的功能,都可以单独拿出来执行。如果需要修改查找访问页面,那么我需要两段代码都需要修改。当这类独立的脚本数量多了起来,去修改这些内容花费的工作量太大,将会失去了自动化的目的。

接口自动化测试模型(Python+Selenium)简介

  2、模块化与类库

  login.py

  # coding:utf-8

  from time import sleep

  from selenium import webdriver # 从selenium中引入webdriver

  def login_mantis():

  driver = webdriver.Firefox() # 选择打开的浏览器

  driver.maximize_window() # 浏览器窗口最大化

  driver.implicitly_wait(3) # 隐式等待

  driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php") # 获取URL,打开页面

  sleep(1) # 直接等待

  username = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input") # 通过Xpath定位获取输入账号框

  username.send_keys("wuhaobo") # 输入账号

  sleep(1)

  password = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input") # 通过Xpath定位获取输入密码框

  password.send_keys("123456") # 输入密码

  sleep(1)

  login = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input") # 通过Xpath定位获取登录按钮

  login.click() # 点击登录按钮

  sleep(3)

  上面的代码实现了mantis登录功能。

  quit.py

  # coding:utf-8

  from selenium import webdriver # 从selenium中引入webdriver

  def quit_mantis():

  driver = webdriver.Firefox() # 选择打开的浏览器

  driver.quit() # 退出相关浏览器

  上面的代码实现了mantis退出功能。

  do_something_in_mantis.py

  # coding:utf-8

  from time import sleep # 从time中引入sleep

  from selenium import webdriver # 从selenium中引入webdriver

  import login # 引入登录模块

  import quit # 引入退出模块

  login.login_mantis() # 调用登录模块

  print ">>>以下操作为在登录界面后的操作"

  # 需要做的操作放在登录和退出中间

  print ">>>以上操作为在登录界面后的操作"

  quit.quit_mantis() # 调用退出模块

  上面的代码实现了调用登录模块和退出模块。

  通过以上代码可以发现,登录模块和退出模块可以让任意操作类脚本调用,省去了该部分代码的重复量,便于维护的同时,也加快了代码的开发速度。

  3、数据驱动

  直接理解成参数化输入,不同结果输出。

  (1)、读取TXT方式

  将存好登录的账号密码放置在两个TXT文件中

  # coding:utf-8

  from time import sleep

  from selenium import webdriver # 从selenium中引入webdriver

  username_file = open("G:joker_studyusername.txt") # 打开账号文本路径

  username = username_file.read() # 取出账号

  password_file = open("G:joker_studypassword.txt") # 打开密码文本路径

  password = password_file.read() # 取出密码def login_mantis_by_txt():

  driver = webdriver.Firefox() # 选择打开的浏览器

  driver.maximize_window() # 浏览器窗口最大化

  driver.implicitly_wait(3) # 隐式等待

  driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php") # 获取URL,打开页面

  sleep(1) # 直接等待

  username_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input") # 获取输入账号框

  username_input.send_keys(username) # 输入账号

  sleep(1)

  password_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input") # 获取输入密码框

  password_input.send_keys(password) # 输入密码

  sleep(1)

  login_button = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input") # 获取登录按钮

  login_button.click() # 点击登录按钮

  sleep(3)

  driver.quit() # 退出浏览器

  上面的代码实现了从TXT文件中读出账号和密码,再传入函数中,进行登录操作。

  (2)、通过函数

  userconfig.py

  # coding:utf-8

  def username_password(username="CJOLER",password="123456"):

  return username,password

  login.py

  # coding:utf-8

  from time import sleep

  from selenium import webdriver # 从selenium中引入webdriver

  import userconfig # 引入userconfig文件

  un, pw = userconfig.username_password()

  print un, pw

  def login_mantis_by_txt():

  driver = webdriver.Firefox() # 选择打开的浏览器

  driver.maximize_window() # 浏览器窗口最大化

  driver.implicitly_wait(3) # 隐式等待

  driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php") # 获取URL,打开页面

  sleep(1) # 直接等待

  username_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input") # 获取输入账号框

  username_input.send_keys(un) # 输入账号

  sleep(1)

  password_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input") # 获取输入密码框

  password_input.send_keys(pw) # 输入密码

  sleep(1)

  login_button = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input") # 获取登录按钮

  login_button.click() # 点击登录按钮

  sleep(3)

  driver.quit() # 退出浏览器

  上面的代码实现了将账号密码放在一个函数内,再去调用,进行登录操作。

  以上是关于接口自动化测试模型(Python+Selenium)的简介,由多测师亲自撰写。https://www.aichudan.com/

联系电话

17727591462

返回顶部