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 相关文章推荐
Pandas中把dataframe转成array的方法
Apr 13 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 Python
jupyter notebook实现显示行号
Apr 13 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
python多线程爬取西刺代理的示例代码
Jan 30 Python
django 认证类配置实现
Nov 11 Python
Python制作春联的示例代码
Jan 22 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对XML的操作详解
2013/06/07 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP类的反射用法实例
2014/11/03 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
js数组操作常用方法
2014/05/08 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
解析Python编程中的包结构
2015/10/25 Python
python3音乐播放器简单实现代码
2020/04/20 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
python3字符串输出常见面试题总结
2020/12/01 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
环境工程大学生自荐信
2013/10/21 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android