主动化测试平台设计与实现(五、用例实行的统计与展示) ...

打印 上一主题 下一主题

主题 898|帖子 898|积分 2694

基本思绪:

  • 设计统计的数据内容:界说必要统计的数据内容,包括测试用例的实行结果。
  • 利用 Pyecharts 天生统计图表:在后端利用 Pyecharts 根据统计数据天生图表。
  • 将图表数据传输到前端:后端通过 API 将图表数据传输到前端。
  • 在 Vue.js 前端展示图表:在 Vue.js 前端项目中利用 Echarts 渲染图表。
1. 设计统计的数据内容

假设我们统计的数据内容包括:

  • 总用例数
  • 乐成用例数
  • 失败用例数
  • 实行时间
  • 各用例的实行状态(乐成、失败)
设计一个模型来存储测试用例实行结果,TestCaseResult 用于存储测试用例实行结果,ChartData 用于存储统计图表数据。
  1. # models.py
  2. from django.db import models
  3. class TestCaseResult(models.Model):
  4.     STATUS_CHOICES = (
  5.         ('success', 'Success'),
  6.         ('failure', 'Failure'),
  7.     )
  8.     case_id = models.CharField(max_length=100)
  9.     status = models.CharField(max_length=10, choices=STATUS_CHOICES)
  10.     execution_time = models.FloatField()
  11.     executed_at = models.DateTimeField(auto_now_add=True)
  12.     def __str__(self):
  13.         return f"TestCase {self.case_id} - {self.status}"<br><br>class ChartData(models.Model): <br>  created_at = models.DateTimeField(auto_now_add=True) <br>  pie_chart = models.TextField() <br>  bar_chart = models.TextField() <br>  def __str__(self): <br>    return f"ChartData created at {self.created_at}"<br>
复制代码
 
2. 利用 Pyecharts 天生统计图表

通过视图中统计这些数据,在后端利用 Pyecharts 天生图表,将其保存到 ChartData 模型中
  1. # views.py
  2. from django.shortcuts import render
  3. from django.http import JsonResponse
  4. from .models import TestCaseResult, ChartData
  5. from pyecharts.charts import Pie, Bar
  6. from pyecharts import options as opts
  7. def generate_charts():
  8.     total_cases = TestCaseResult.objects.count()
  9.     success_cases = TestCaseResult.objects.filter(status='success').count()
  10.     failure_cases = TestCaseResult.objects.filter(status='failure').count()
  11.     execution_times = list(TestCaseResult.objects.values_list('execution_time', flat=True))
  12.     # 饼图
  13.     pie = Pie()
  14.     pie.add("", [("Success", success_cases), ("Failure", failure_cases)])
  15.     pie.set_global_opts(title_opts=opts.TitleOpts(title="Test Case Results"))
  16.     pie_html = pie.render_embed()
  17.     # 柱状图
  18.     bar = Bar()
  19.     bar.add_xaxis([f"TestCase {i+1}" for i in range(total_cases)])
  20.     bar.add_yaxis("Execution Time (s)", execution_times)
  21.     bar.set_global_opts(title_opts=opts.TitleOpts(title="Test Case Execution Times"))
  22.     bar_html = bar.render_embed()
  23.     return pie_html, bar_html
  24. def save_chart_data():
  25.     pie_html, bar_html = generate_charts()
  26.     chart_data = ChartData(pie_chart=pie_html, bar_chart=bar_html)
  27.     chart_data.save()
  28.     return chart_data
  29. def test_case_statistics(request):
  30.     # 生成并保存图表数据
  31.     chart_data = save_chart_data()
  32.     return JsonResponse({
  33.         "pie_chart": chart_data.pie_chart,
  34.         "bar_chart": chart_data.bar_chart,
  35.     })
复制代码
 
3. 前端展示图表

在 Vue.js 前端通过 API 获取图表数据并展示
  1. <template>
  2.   
  3.    
  4.    
  5.   
  6. </template>
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表