Python分类测试代码实例汇总


Posted in Python onJuly 23, 2020

1.自动化测试里面的测试用例设计的一些方法

解耦、可以独立运行、需要灵活切换

设计思路: 脚本功能分析(分步骤)和模块化分层(拆分为多模块)

project

login_order.py #登录下单测试用例
category.py #菜单分类测试用例

all_test.py #主入口

login_order.py

# -*- coding: UTF-8 -*-
import unittest
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains


class LoginOrderTestCase(unittest.TestCase):
  def setUp(self):
    print("测试开始")
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(20)
    self.base_url = "https://xdclass.net"
    self.driver.get(self.base_url)

  def tearDown(self):
    print("单个测试用例结束")
    pass
    #单个测试用例结束
  
  def test_login_order(self):
    u"登录测试用例"
    driver = self.driver
    #登录框
    login_ele = driver.find_element_by_css_selector("#login")
    ActionChains(driver).click(login_ele).perform()

    sleep(2)
    #查找输入框,输入账号,输入框要提前清理里面的数据
    driver.find_element_by_id("phone").clear()
    driver.find_element_by_id("phone").send_keys("13113777338")
    #查找密码输入框,输入密码
    driver.find_element_by_id("pwd").clear()
    driver.find_element_by_id("pwd").send_keys("123456789")

    #拿到登录按钮
    login_btn_ele = driver.find_element_by_css_selector("button.login")
    #触发点击事件,登录
    login_btn_ele.click()
    #判断登陆是否成功,逻辑-》鼠标移到上面,判断弹窗字符
    #获取鼠标上移的元素
    user_info_ele = driver.find_element_by_css_selector(".user_head_portrait")
    sleep(1)
    #hover触发
    ActionChains(driver).move_to_element(user_info_ele).perform()
    sleep(1)
    #获取用户名称元素
    user_name_ele = driver.find_element_by_css_selector(".img_name > span:nth-child(2)")
    print("===测试结果==")
    print(user_name_ele.text)

    name = user_name_ele.text
    #self.assertEqual(name, u"二当家小D",msg="登录失败")

    video_ele = driver.find_element_by_css_selector("div.hotcourses:nth-child(3) > div:nth-child(2) > div:nth-child(1) > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1) > div:nth-child(1) > img:nth-child(1)")
    video_ele.click()
    sleep(2)

    buy_btn_ele = driver.find_element_by_css_selector(".learn_btn > a:nth-child(1)")

    buy_btn_ele.click()
    print("进入下单页面")
    
if __name__ == '__main__':
    unittest.main()

category.py

# -*- coding: UTF-8 -*-
import unittest
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains

class CategoryTestCase(unittest.TestCase):
  def setUp(self):
    print("测试开始")
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(20)
    self.base_url = "https://xdclass.net"
    self.driver.get(self.base_url)


  def tearDown(self):
    print("测试结束")
    #单个测试用例结束
    self.driver.quit()

  def test_menu(self):
    u"弹出菜单测试用例"
    driver = self.driver
    #跳转网页
    sleep(1)

    #定位到鼠标移动到上面的元素
    menu_ele = driver.find_element_by_css_selector("#banner_left_ul > a:nth-child(1) > li:nth-child(1) > span:nth-child(1)")

    #对定位到的元素执行鼠标移动到上面的操作
    ActionChains(driver).move_to_element(menu_ele).perform()
    sleep(2)
    #选中子菜单
    sub_meun_ele = driver.find_element_by_css_selector("#des > li:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)")

    sub_meun_ele.click()
    sleep(2)


if __name__ == '__main__':
  unittest.main()

all_test.py

# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import login_order ,category
import time

#创建测试集合  
def create_suite():
  print("测试开始")
  suite = unittest.TestSuite()
  suite.addTest(unittest.makeSuite(login_order.LoginOrderTestCase))
  suite.addTest(unittest.makeSuite(category.CategoryTestCase))
  return suite
   

if __name__ == '__main__':
  suite = create_suite()

  #文件名中加了当前时间,为了每次生成不同的测试报告
  file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())

  #创建测试报告,此时这个文件还是空文件 wb 以二进制格式打开一个文件,只用于写入,如果文件存在则覆盖,不存在则创建
  fp = open("./"+file_prefix+"_result.html","wb")
  
  # stream定义一个测试报告写入的文件,title就是标题,description就是描述
  runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"小D课堂 测试报告",description=u"测试用例执行情况",verbosity=2)
  runner.run(suite)
  fp.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
python更改已存在excel文件的方法
May 03 Python
Python实现合并两个列表的方法分析
May 28 Python
python连接mongodb密码认证实例
Oct 16 Python
python之pexpect实现自动交互的例子
Jul 25 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 Python
python操作toml文件的示例代码
Nov 27 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
python 下载文件的几种方式分享
Apr 07 Python
TensorFlow的自动求导原理分析
May 26 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 Python
基于Python3读写INI配置文件过程解析
Jul 23 #Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 #Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 #Python
Python 绘制可视化折线图
Jul 22 #Python
python写文件时覆盖原来的实例方法
Jul 22 #Python
python中return不返回值的问题解析
Jul 22 #Python
Java byte数组操纵方式代码实例解析
Jul 22 #Python
You might like
php批量删除数据
2007/01/18 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
进一步了解Python中的XML 工具
2015/04/13 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
tensorflow 查看梯度方式
2020/02/04 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
三星美国官网:Samsung美国
2017/02/06 全球购物
档案接收函
2014/01/13 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
创新型城市实施方案
2014/03/06 职场文书
大学自主招生推荐信
2014/05/10 职场文书
学校安全管理责任书
2014/07/23 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
生死抉择观后感
2015/06/09 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书