如何访问 JSON 格式的 .har 文件的数据?

Posted

技术标签:

【中文标题】如何访问 JSON 格式的 .har 文件的数据?【英文标题】:How to access the data of .har file with JSON format? 【发布时间】:2021-03-23 23:05:40 【问题描述】:

我有一个从网站生成的 .har 文件。我认为 .har 文件是一个 JSON 对象(来自我在网络上进行的搜索),我想访问一些特定的数据,比如 serverIPAddress、startedDateTime 等等。问题是我如何访问它们。

这是用户上传 .har 文件的 html 代码:

<!DOCTYPE html>
<html>
    <head>
        <title>SelectFile</title>
    </head>
    <body>
        <h1>Please select your HAR files</h1>
        <input type="file" id="logo" accept=".HAR" multiple>
    </body>
</html>

<style type="text/css">
    h1text-align:center;
    body font-family: Arial, Helvetica, sans-serif;
    form border: 3px solid #f1f1f1;

    input[type=text], input[type=password] 
      width: 100%;
      padding: 12px 20px;
      margin: 8px 0;
      display: inline-block;
      border: 1px solid #ccc;
      box-sizing: border-box;
    
</style>

这是javascript的脚本:

<script type="text/javascript"> 
    const fileselector = document.getElementById('logo')
    console.log(fileselector);

    fileselector.addEventListener('change', function()  

        const file= this.files[0];
        console.log(file);
        console.log(file.entries);//This prints error message in console
</script>

我是 javascript 的新手,我通常知道您可以访问像 objectName.propertyName 这样的对象。提前致谢。

【问题讨论】:

【参考方案1】:

首先必须读取 File 对象,并解析生成的 JSON,然后才能执行任何操作。试试这样的:

const dataString = await this.files[0].text();
const data = JSON.parse(dataString);

另见:

https://developer.mozilla.org/en-US/docs/Web/API/Blob/text https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

【讨论】:

以上是关于如何访问 JSON 格式的 .har 文件的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 HTML 文件生成 HAR 文件?

HttpRunner接口自动化测试框架--脚本录制

2录制生成用例

httprunner学习2-har2case录制生成脚本

如何将请求响应对象序列化为 HAR

如何将从 Chrome 导出的 .HAR 文件导入 JMeter?