def test_send_rasp_result_data(preprocessor_fixture):
    """
    测试rasp_result型json data处理
    """
    json_data = http_data["rasp_result"]
    try:
        r = http_sender.send_json(json_data, api_path)
    except Exception as e:
        assert False == e
    else:
        assert r.status_code == 200
        assert json.loads(r.text)["status"] == 0
        data = None
        for i in range(10):
            try:
                data = Communicator().get_data_nowait("rasp_result_queue_0")
            except Exception:
                time.sleep(0.5)
        assert data.get_request_id() == json_data["context"]["requestId"]
    async def _fetch_from_queue(self):
        """
        获取扫描请求的RaspResult, 并分发给扫描插件
        """
        queue_name = "rasp_result_queue_" + self.module_id
        sleep_interval = 0.1
        continuously_sleep = 0
        Logger().debug("Fetch task is running, use queue: " + queue_name)

        while True:
            if Communicator().get_value("config_version") > self.scan_config["version"]:
                self._update_scan_config()
            try:
                data = Communicator().get_data_nowait(queue_name)
                Logger().debug("From rasp_result_queue got data: " + str(data))
                result_receiver.RaspResultReceiver().add_result(data)
                Logger().debug("Send data to rasp_result receiver: {}".format(
                    data.get_request_id()))
                continuously_sleep = 0
            except exceptions.QueueEmpty:
                if continuously_sleep < 10:
                    continuously_sleep += 1
                await asyncio.sleep(sleep_interval * continuously_sleep)