我正在运行django站点的一系列selenium功能测试,以进行验收测试。我注意到,当我运行这些程序并且出现异常时,我会返回整个页面(例如HTTP状态500)
我正在使用一个简单的循环运行验收测试,并使用django orm将输出的html存储到db中:
def my_functional_tests(request):
import requests
from mytests.models import Entry
for i in range(3):
p1 = { ....... }
r1 = requests.post('http://127.0.0.1:8000/testfunction1/',data=p1)
..............
entry = Entry(output1 = r1.text, output2 = r2.text, output3 = r3.text)
entry.save()
return HttpResponse("completed")
我的模型定义为(其中输出是3个功能测试的HTML结果):
class Entry(models.Model):
output1 = models.CharField(max_length=240)
output2 = models.CharField(max_length=240)
output3 = models.CharField(max_length=240)
当我得到一个错误时,生成的大约65K的网页会导致保存时出现异常,并中断测试。我希望获得尽可能多的信息,因此我可以将max_长度增加到70000来存储整个页面,但是有没有更简洁的方法来捕获和存储相关数据,包括数据库中的特定错误
如果您使用Django的测试客户机这样做,您可以获得更简洁的信息,但是通过使用请求,您确实像web浏览器一样访问您的页面,因此您可以得到完整的页面(但对于500错误页面,是65K吗?哇)
能否在错误页面中嵌入带有标记和简明说明的HTML注释
这样,您就可以解析该错误代码的结果并将其存储
当然,您需要确保在该错误消息中没有任何机密信息,或者,如果您这样做了,则只有在调试模式下,或者当请求来自本地主机,或者作为工作人员登录,或者任何其他安全约束起作用时,才会发出该消息
更漂亮的做法是编写一个中间件,将错误信息作为HTTP头发送;然后,您的页面可以保持不变,您可以查看响应标题以获取错误信息
相关问题 更多 >
编程相关推荐