接口脚本优化-若测试报告存在,先删除,再写入

接口脚本优化-若测试报告存在,先删除,再写入_第1张图片

当某一个虚拟用户a正在报告里面写东西,这时候另外一个虚拟用户b也登录进来了,要删除,这个文件处于打开状态是不允许被删除的,两个动作冲突,会报错,两个不同的用户在同一个时间段内执行相同的脚本,性能测试里面不用做文件删除这个动作,功能自动化测试可以,做性能测试之前删是没有问题的

 一、脚本

# 针对查询功能进行性能测试
from locust import HttpLocust,task,TaskSet
import csv
import datetime
import os
# from gevent.semaphore import Semaphore
# all_locust_spawned=Semaphore
# all_locust_spawned.acquire()
class UserBehavior_search(TaskSet):
    # task标签,表示这是一个任务的开始
    @task
    def test_seach(self):
        # 以只读方式打开测试数据文件
        file=open("searchdata.csv","r")
        ############################################
        # 若测试报告文件存在,先进行删除
        file2="searchresult.csv"
        result=os.path.exists(file2)
        print(result)
        if result:
            os.remove(file2)
        ############################################
        file2=open("searchresult.csv","a")
        rows=csv.reader(file)
        for word in rows:
            # print(word)
            # word="手机"
            response=self.client.get("/index.php?controller=site&action=search_list&word="+str(word)).text
            # print(response)
            loc=response.find(str(word))
            te=datetime.datetime.now()
            if loc>=0:
                print(str(word)+"测试成功")
                result=str(te)+str(word)+"测试成功"
                file2.write(result+"\n")
            else:
                print(str(word)+"测试失败")
                result=str(te)+str(word)+"测试失败"
                file2.write(result+"\n")
        file2.close()

class WebSiteUser(HttpLocust):
    host = "http://localhost:8085/iwebshop"
    task_set = UserBehavior_search
    min_wait = 2000
    max_wait = 5000

你可能感兴趣的:(python)