基于Python测试程序是否有错误


Posted in Python onMay 16, 2020

1、首先介绍简单的try......except尝试运行的放例如下面的图和代码来简单介绍下:

def test(x,y):
  print(x+y)
try:
  test()
except:
  print('Error')
test(2,4)

test测试的函数,没传参数的x,y,函数结果是要答应x加y的和

try:试着执行test()函数,正常就执行函数并打印x加y的和

except:否则 打印'Error' 因为我这test没有给x,y定义传参数,所以会走到except

结果:

基于Python测试程序是否有错误

2、我们以上次排球比赛程序为例子做测试:

from random import random
def printIntro():     #打印程序介绍信息
  print("10号张颖慧进行比赛分析结果:")
  print("这个程序模拟两个选手A和B的某种竞技比赛")
  print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs():      #获得程序运行参数
  a = eval(input("请输入选手A的能力值(0-1): "))
  b = eval(input("请输入选手B的能力值(0-1): "))
  n = eval(input("模拟比赛的场次: "))
  return a, b, n
def simNGames(n, probA, probB):  # 进行N场比赛
  winsA, winsB = 0, 0
  for i in range(n):
    for j in range(7):      #进行7局4胜的比赛
      scoreA, scoreB = simOneGame(probA, probB)
      if scoreA > scoreB:
        winsA += 1
      else:
        winsB += 1
  return winsA, winsB
try:
  simNGames(0.55)
except:
  print("simNGames Error")
  
def gameOver(a,b):        #正常比赛结束
  return a==24 or b==24
def gameOver2(a,b):       #进行抢12比赛结束
  if abs((a-b))>=2:
    return a,b
def simOneGame(probA, probB):     #进行一场比赛
  scoreA, scoreB = 0, 0      #初始化AB的得分
  serving = "A"        
  while not gameOver(scoreA, scoreB):   #用while循环来执行比赛
    if scoreA==10 and scoreB==10:
      return(simtwoGame2(probA,probB))
    if serving == "A":
      if random() < probA:      ##用随机数生成胜负
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simOneGame(0.54)
except:
  print("simNGame Error")
  
def simtwoGame2(probA,probB):
  scoreA,scoreB=23,23
  serving = "A"
  while not gameOver2(scoreA, scoreB):
    if serving == "A":
      if random() < probA:
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simtwoGame2(0.44,0.66)
except:
  print("simNGame2 Error")
  
def printSummary(winsA, winsB):
  n = winsA + winsB
  print("竞技分析开始,共模拟{}场比赛".format(n))
  print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
  print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
def main():
  printIntro()
  probA, probB, n = getInputs()
  winsA, winsB = simNGames(n, probA, probB)
  printSummary(winsA, winsB)
main()

这个代码中,在一些函数后用try.....except测试了一遍,如果有错误会分别对某个函数进行报错。

因为小编在参数中故意写错,故会出现错误

运行结果如下:

基于Python测试程序是否有错误

当然还可以执行多个函数及条件的测试都可以,这样可以实现自动化测试业务代码,还可以穿插在程序中你需要的地方

做检测等,这样你的程序会按流程走,这块又可以得到你要的测试效果。来看看代码如下:

x = 0
lis_y = [i for i in range(80,85)]

def test(x,y):
  print(x+y," ")

def test1(x,y):
  print(x*y)

try:
  while x < 20:
    for y in lis_y:
      test(x,y)
      test1(x,chr(y))
      x+=1
except:
  print('Error')

运行结果如下:

基于Python测试程序是否有错误

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

Python 相关文章推荐
python爬取网站数据保存使用的方法
Nov 20 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
Python制作简易注册登录系统
Dec 15 Python
Python实现字典去除重复的方法示例
Jul 31 Python
Python文件操作基本流程代码实例
Dec 11 Python
python增加矩阵维度的实例讲解
Apr 04 Python
详解python3中zipfile模块用法
Jun 18 Python
django的model操作汇整详解
Jul 26 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
Python中的min及返回最小值索引的操作
May 10 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 #Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 #Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 #Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 #Python
Python验证码截取识别代码实例
May 16 #Python
基于plt.title无法显示中文的快速解决
May 16 #Python
基于python生成英文版词云图代码实例
May 16 #Python
You might like
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
php排序算法实例分析
2016/10/17 PHP
php取出数组单个值的方法
2018/03/12 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
node.js中express-session配置项详解
2017/05/31 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python连接phoenix的方法示例
2017/09/29 Python
Python爬取梨视频的示例
2021/01/29 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
团委竞选演讲稿
2014/04/24 职场文书
国旗下的演讲稿
2014/05/08 职场文书
国旗下演讲稿
2014/05/08 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
爱国教育主题班会
2015/08/14 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL