diff --git a/substrate/frame/asset-rewards/src/benchmarking.rs b/substrate/frame/asset-rewards/src/benchmarking.rs
index 2b49260954e8b4207928dfa43a55e2fdb23965d3..e00d4b658b3cd03ae8302c3010fd5ca0ca318184 100644
--- a/substrate/frame/asset-rewards/src/benchmarking.rs
+++ b/substrate/frame/asset-rewards/src/benchmarking.rs
@@ -214,5 +214,36 @@ mod benchmarks {
 		);
 	}
 
+	#[benchmark]
+	fn set_pool_reward_rate_per_block() {
+		use super::*;
+
+		let admin = T::BenchmarkHelper::to_account_id(1);
+		let staked_asset = T::BenchmarkHelper::to_asset_id(0);
+		let reward_asset = T::BenchmarkHelper::to_asset_id(1);
+		create_asset::<T>(&admin, &staked_asset, T::Assets::minimum_balance(staked_asset.clone()));
+		create_asset::<T>(&admin, &reward_asset, T::Assets::minimum_balance(reward_asset.clone()));
+
+		assert_ok!(AssetRewards::<T>::create_pool(
+			SystemOrigin::Signed(admin.clone()).into(),
+			Box::new(staked_asset.clone()),
+			Box::new(reward_asset.clone()),
+			100u32.into(),
+			200u32.into(),
+			None,
+		));
+
+		#[extrinsic_call]
+		_(SystemOrigin::Signed(admin.clone()), 0u32.into(), 5u32.into());
+
+		assert_last_event::<T>(
+			Event::PoolRewardRateModified {
+				pool_id: 0u32.into(),
+				new_reward_rate_per_block: 5u32.into(),
+			}
+			.into(),
+		);
+	}
+
 	impl_benchmark_test_suite!(AssetRewards, crate::mock::new_test_ext(), crate::mock::MockRuntime);
 }